在Unix中从文件中删除所有回车\r的最简单方法是什么?


当前回答

如果你正在运行一个X环境,并且有一个合适的编辑器(visual studio代码),那么我会遵循以下建议:

Visual Studio代码:如何显示行结束

只要转到屏幕的右下角,visual studio代码就会显示文件编码和文件后面的行结束约定,只需简单地单击就可以切换。

只要在linux环境下使用可视化代码作为notepad++的替代品,你就可以开始了。

其他回答

tr -d '\r' < infile > outfile

看到tr (1)

在我看来,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。

有一个名为dos2unix的实用程序存在于许多系统上,并且可以在大多数系统上轻松安装。

事情是这样的,

%0d是回车字符。使它与Unix兼容。我们需要使用下面的命令。

dos2unix fileName。extension fileName.extension

有人推荐dos2unix,我也强烈推荐。我只是提供更多的细节。

如果已安装,请跳转到下一步。如果还没有安装,我建议通过yum安装:

yum install dos2unix

然后你可以这样使用它:

dos2unix fileIWantToRemoveWindowsReturnsFrom.txt