sed高级应用之替换\n换行符

sed 替换换行符失败后,查阅了一下资料,发现

sed是按行处理文本数据的,每次处理一行数据后,都会在行尾自动添加trailing newline,其实就是行的分隔符即换行符。

如果非要使用sed命令,实现替换file文本内容的换行符为空的话,那么就要了解sed的分支条件命令,以及了解sed的pattern space模式空间和hold space保持空间。即,连续两行执行一次sed命令,这样就可以把前一行的\n替换完成。

[root@santiagod 172]# cat over/test
2NHWZELE
2PJ4PSAJ
2PJ54DYJ
3HH0WDBP
3HH16HBN
4YGA342H
5BH22GTR
[root@santiagod 172]# sed ":2PJ54DYJ;$!N;s/\n/、/g;b2PJ54DYJ" over/test |awk -F'' '{print NF}'
7
[root@santiagod 172]# sed ":2PJ54DYJ;$!N;s/\n/、/g;b2PJ54DYJ" over/test 
2NHWZELE、2PJ4PSAJ、2PJ54DYJ、3HH0WDBP、3HH16HBN、4YGA342H、5BH22GTR
[root@santiagod 172]# sed ":2PJ54DYJ;$!N;s/\n/、/g;b2PJ54DYJ" over/test 
[root@santiagod 172]# sed ":0;$!N;s/\n/、/g;b0" over/test
2NHWZELE、2PJ4PSAJ、2PJ54DYJ、3HH0WDBP、3HH16HBN、4YGA342H、5BH22GTR

 

参考连接:https://blog.csdn.net/u011729865/article/details/71773840

当然 其他方法也能替换换行符,如:

#cat over/test|tr '\n' ','
2NHWZELE,2PJ4PSAJ,2PJ54DYJ,3HH0WDBP,3HH16HBN,4YGA342H,5BH22GTR,

 

posted @ 2023-02-07 15:37  咿呀哒喏  阅读(1395)  评论(0编辑  收藏  举报