shell:sed 替换换行符

一、文本特征:一首现代诗

滚滚长江
东逝水,

浪花淘尽
英雄。

是非成败转头
空。

青山
依旧在,

几度夕阳红。

白发渔樵
江渚上,

惯看秋月
春风。

一壶浊酒喜相逢。

古今多少事,

都付笑谈中。

——《临江仙》

二、目标:改回原貌

命令如下:

$ cat xiandaishi.txt | sed ':a;N;$!ba;s/\n\n/@@@/g' | sed ':a;N;$!ba;s/\n//g' | sed 's/@@@/\n/g'
滚滚长江东逝水,
浪花淘尽英雄。
是非成败转头空。
青山依旧在,
几度夕阳红。
白发渔樵江渚上,
惯看秋月春风。
一壶浊酒喜相逢。
古今多少事,
都付笑谈中。
——调寄《临江仙》

分析:

上述命令中,sed 命令出现了三次,目的分别如下:

2.1)将文本中的连续两个换行替换成三个@符号,为下一步消除单独的换行做准备

sed ':a;N;$!ba;s/\n\n/@@@/g'

2.2)将文本中的所有换行符都抹除

sed ':a;N;$!ba;s/\n//g'

2.3)将第一步的@@@替换成一个换行符

sed 's/@@@/\n/g'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值