我有个一个文本文件如下:
cat -v -n test.txt
1 123^C456^C789^M
2 000^C
3 abc^Cdef^M
4 ^M
5 ^Cgh
我想用sed对这个文件进行处理得到这样的文本:
1 123^C456^C789000^C
2 abc^Cdef^Cgh
也就是,若行尾有^M,则去掉,并且把下一行并入这一行
请问怎么做?
Linux sed 文件处理
答案:3 悬赏:0
解决时间 2021-02-04 01:40
- 提问者网友:失败的占卜者
- 2021-02-03 08:26
最佳答案
- 二级知识专家网友:白日梦制造商
- 2021-02-03 09:01
sed正常逐行处理的模式应该是读取不到这些非可见字符的。
需要先用 N 命令将下一行append到当前行后面,然后再对^M进行替换。
需要先用 N 命令将下一行append到当前行后面,然后再对^M进行替换。
全部回答
- 1楼网友:气场征服一切
- 2021-02-03 11:02
试试sed 's/^M\n//' filename
- 2楼网友:没感情的陌生人
- 2021-02-03 10:05
sed 's/\^M//;s/\n//' test.txt | sed 'N;s/\n//'
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯