如何使用sed去除\r字符

11

非常简单,我有一个文件,在每个断行处都有\r\n。

aaaa\r\nbbbb\r\ncccc

我想在保留 \n 的情况下删除 \r 字符。

在Python中可以很容易地实现这一点,但使用简单的sed命令似乎更加优雅。这可能吗?哪个表达式可以解决这个问题?我在网上找不到任何这样的解决方案。

谢谢。


2
这就是 dos2unix 工具的作用。但使用 sed,它会完全符合您的期望。sed -e 's/\r//' file - Etan Reisner
3个回答

19
你应该可以使用如下的sed命令来完成它:
sed 's/\r//g' orig.txt > modified.txt

1
如果你想要特别删除换行符前面的回车符:sed 's/\r$//' - glenn jackman

3

补充之前的回答,如果你想修改文件而不是创建一个新的:

sed -i 's/\r$//' file.txt

如果您想存储一个备份文件,比如说扩展名为.bak:

sed -i.bak 's/\r$//' file.txt

这会修改file.txt文件并创建一个名为file.txt.bak的备份文件。


2

如果您在Mac上使用终端,请改用以下命令,以便能够识别\r

sed "s/$(printf '\r')\$//" orig.txt > modified.txt


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接