使用 sed 修复损坏的换行符

使用 sed 修复损坏的换行符

我有一个装满文件的文件夹,每个文件都有数百行。其中许多文件偶尔会出现断行换行符:当我在 vim 中打开它们时,许多文件都在应该换行符的位置散布了 ^M^L 。

在 vim 中,我可以运行%s/^M^L/\r/g它来纠正它们。但是,我不想对每个文件都执行此操作。

所以我尝试通过 sed 在 bash 脚本中执行此操作,但没有成功。我都尝试过:

sed 's/^M^L/\r/g' filename

sed 's/^M^L/\
/g' filename

注意:这里每次出现^M^L时,我都进行了ctrl-v ctrl-m,而不仅仅是shift-6 (^) M。

我究竟做错了什么?更重要的是,我需要做什么才能使其发挥作用?

答案1

您应该能够执行以下操作:

sed 's/\x0C//g`

或者

sed 's/\x0D\x0C/\x0D/g'

或者如果你使用 GNUsed

sed 's/\r\f/\r/'

相关内容