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


1

我正在尝试用文本文件中的逗号替换所有回车符,但是我必须使用了sed不正确的命令。

由于我可以echo -e "\x0D"并且让马车退回,所以我sed -e 's/open/'$(echo "\x0D")'/' 1.txt > 2.txt无济于事。1.txt包含您可能已经推断出的回车符。该命令创建2.txt包含文本的命令x0D

Answers:


1

这并不是Mac OS X特有的。同样的概念在大多数Linux / Unix OS上都适用。但是,尽管您可以在sed(流编辑器)中执行此操作,但是您也可以使用tr(翻译字符),如下所示:

tr '\r' , < foo.txt

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

123
456
789

tr命令的输出将是:

123,456,789,

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

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

1
回车(回答OP的实际问题)\r不是\n
Thomas Dickey 2015年

啊! 是的,我知道此解决方案。如果可能,我一直在寻找如何在Sed中进行操作。我花了几个小时尝试将unicode或/ r与sed一起使用,但不知道如何使用。我可能应该通过在我的初始查询中发布时间来节省您的时间。道歉。
需要更多文档

@NeedsMoreDocumentation不。不要道歉 我没有意识到这是sed特定的,这个答案对我来说很简单。因此,如果它可以帮助某人,那么一切都很好。
JakeGould 2015年

0

tr是一个更好的解决方案,但您问过如何做sed

用ansi -c引用:

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

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

不使用ansi -c引用:

cr=$(printf '\r')
sed 's/'"$cr"'/,/' file
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.