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,33.8
B, NV,2015-04-06,14.4^M,14.7,5.4,0.0,47.0^M,14.8^M,97.0^M,31.3
I have tried with
tr -d '^M' < file.csv > file2.csv
But it doesn't remove, also with sed.
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
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.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.