通过 Mac OS X 10.10(Yosemite)中的终端删除文本文件中的回车符

通过 Mac OS X 10.10(Yosemite)中的终端删除文本文件中的回车符

我试图将文本文件中的所有回车符替换为逗号,但我一定是使用了sed不正确的命令。

由于我可以echo -e "\x0D"并产生回车符,我尝试了sed -e 's/open/'$(echo "\x0D")'/' 1.txt > 2.txt但没有成功。1.txt包含回车符,正如您可能推断的那样。该命令创建2.txt包含文本的x0D

答案1

这并不是 Mac OS X 独有的;同样的概念适用于大多数 Linux/Unix 操作系统。但是虽然你可以在sed(流编辑器)你也可以使用tr(翻译字符)像这样:

tr '\r' , < foo.txt

因此如果的内容foo.txt是这样的:

123
456
789

该命令的输出tr将是:

123,456,789,

然后将该命令的结果输出到文件> bar.txt末尾,如下所示:

tr '\r' , < foo.txt > bar.txt

答案2

tr是一个更好的解决方案,但你问如何做到这一点sed

使用 ansi -c 引用:

sed -E 's/'$'\r''/,/' file

sed $'s/\r/,/' file

没有 ansi -c 引用:

cr=$(printf '\r')
sed 's/'"$cr"'/,/' file

相关内容