换行符"/>
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'
更多推荐
shell:sed 替换换行符
发布评论