sed命令之将换行符转换为空格的方法

换行符“\n”
第一次用了下面的命令,发现并没有任何用

[root@foundation56 Desktop]# sed -i 's/\n/ /g' test 
[root@foundation56 Desktop]# cat test 
1
2
3
4
5
6

后来查看了许多博客才知道:sed是按行处理文本数据的,每次处理一行数据后,都会在行尾自动添加trailing newline,其实就是行的分隔符即换行符。

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

最终实现方法如下:

[root@foundation56 Desktop]# sed -i 'N;s/\n/ /g' test 
[root@foundation56 Desktop]# cat test 
1 2
3 4
5 6
[root@foundation56 Desktop]# sed -i ':a;N;s/\n/ /g;ta' test 
[root@foundation56 Desktop]# cat test 
1 2 3 4 5 6

N就是把下一行加入到当前的hold space模式空间中,使之进行后续处理,最后sed会默认打印除hold space模式空间里的内容。也就是说,sed是可以处理多行数据的。

:a和ta是配套使用的,实现跳转功能。t是test测试的意思。
另外,还有:a和ba的配套使用方法,也可以实现调转功能。b是branch分支的意思。

sed -i ':a;N;s/\n/ /g;ba' test

参考博客:https://blog.csdn.net/u011729865/article/details/71773840

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值