I have a problem when I try to remove ^M from a csv
When I type vim or vi file.csv, I get
A, TK,2015-04-06,14.4^M,14.7,10.0,0.0,54.0^M,13.3^M,135.0^M
Where did you get that file from? It looks like an old System X file from a Mac. The old pre-OSX OS used <CR>
as line endings. Unix uses <LF>
, and Windows/DOS uses <CRLF>
.
Do you have dos2unix. This program can convert line endings from Unix/Linux, DOS/Windows, or System X Macs to any of the formats you want. In your file, I take it you need to convert the ^M
which are Control Ms and not a Caret-M to NL
characters.
You can try:
perl -pE 's/(\^M|\r)//g' < file >file2
should remove
^M
- sequence of two characters ^
and M
^M
as \r
character.You could use dos2unix
command which is provided to do that.
Using GNU/sed just for fun :
sed -i -e "s/\r//g" file
Using tr
:
tr -d '\r' <file1 >file2