在Unix中从文件中删除所有回车\r的最简单方法是什么?
当前回答
古老的学校:
tr -d '\r' < filewithcarriagereturns > filewithoutcarriagereturns
其他回答
古老的学校:
tr -d '\r' < filewithcarriagereturns > filewithoutcarriagereturns
在我看来,Linux上最简单的方法是,
sed -i.bak 's/\r$//g' <filename>
-i将编辑文件,而.bak将创建原始文件的备份,复制您的文件并在末尾添加扩展名.bak。(你可以在-i后面指定任何你想要的,或者只指定-i来不创建备份。)
替换操作符's/\r//'周围的强引号是必不可少的。如果没有它们,shell将把\r解释为转义+r,并将其简化为纯r,并删除所有小写r。这就是为什么Rob在2009年给出的答案不起作用。
添加/g修饰符可以确保即使是多个\r也会被删除,而不仅仅是第一个\r。
tr -d '\r' < infile > outfile
看到tr (1)
有一个名为dos2unix的实用程序存在于许多系统上,并且可以在大多数系统上轻松安装。
如果你是一个Vi用户,你可以打开文件并删除回车符:
:%s/\r//g
或与
:1,$ s/^M//
请注意,您应该通过按ctrl-v和ctrl-m键入^M。