我试图将回车符替换到上一行的末尾。 ^ M是回车。
示例:
hello
hello 1^M
hello 2^M
hello 3^M
hello 4^M
hello 5^M
hello 6
我需要什么:
hello
hello 1 hello 2 hello 3 hello 4 hello 5
hello 6
我希望所有^ M替换为没有^ M的前一行的结尾。 你有什么主意吗。如何更换?
这是我的命令:
sed -i 's/^M//g' filtest.txt
sed -i ':a;N;$!ba;s/\n//g' filtest.txt
结果:
hellohello 1hello 2hello 3hello 4hello 5hello 6
感谢您的帮助! :)
答案 0 :(得分:0)
这将执行它想要的样子,使用GNU awk进行多字符RS,第3个arg匹配():
$ gawk -v RS='^$' -v ORS= '{
match($0,/\r.*\r/,a)
gsub(/\r(\n|$)/,"",a[0])
print substr($0,1,RSTART-1) a[0] substr($0,RSTART+RLENGTH)
}' file
hello
hello 1hello 2hello 3hello 4hello 5
hello 6