输入文件:
abc
def^M
ghi
jkl
mno^M
pqr^M
期望的输出:
abc def
ghi jkl mno
pqr
我试过了:
sed 's/^[\^M]$/ /g' file.txt > output.txt
即。所有行都应与空格隔离,直到^ M [ctrl -m]字符。
答案 0 :(得分:2)
^M
通常不是实际字符^
和M
。 ^
表示特殊字符,M
表示它是第13个ASCII字符(M是第13个字母)。 ^M
表示回车符。查看ASCII table可以提供帮助。这种不可打印的ASCII字符称为“控制字符”。
这通常意味着该文件有两个字符的Windows样式换行符,ASCII 13和ASCII 10.大多数语言将其表示为\r\n
。
要替换^M
,您可以使用\r
或\015
(基数为8的第15个ASCII字符 ,十进制为13)。
答案 1 :(得分:2)
使用gnu-awk
即可:
awk -v RS='\r\n*' '{gsub(/\n/, " ")} 1' file
abc def
ghi jkl mno
pqr