Possible Duplicate:
在Unix中删除回车符
我正在阅读由外部第三方生成的数据。我注意到文件中的ASCII文本与^M字符交织在一起,我相信^M是ASCII码中表示回车符但不带换行符的字符13。
是否有一条可以从该文件中去除^M字符的命令?
我的操作系统是Linux(Ubuntu)。
是否有一条可以从该文件中去除^M字符的命令?
我的操作系统是Linux(Ubuntu)。
你可以像这样使用sed:
sed -i.bak 's/^M$//' infile.txt
要输入^M
,您需要先按下CTRL-V
,然后再按下CTRL-M
。
或者
dos2unix infile.txt file2.txt ....
或者
man dos2unix
for more details.
dos2unix
(有很多旧版Unix的经验!)。由于用户指定了Linux,我认为这是一个有用的建议。毕竟,并不是所有的sed
都支持-i
。感谢大家,祝好运。 - shellter-i
是可选的。一个简单的sed 's/^M$//' infile.txt > output.txt
也可以工作。 - anubhavas/^M$//'
处理的,而-i
只是一个可选的方便快捷方式。 - anubhava
-i.bak
是GNUsed
的扩展,意思是“原地修改文件,并备份原文件为.bak
后缀”。不过,阅读手册仍然是一个好主意。 - Jonathan Leffler