Content #
如果文本文件已经有一些空行,但你想给所有行加倍行间距,怎么办呢?如果沿用前面的脚本,有些区域会有太多的空行,因为已有的空行也会被加倍: $ cat data6.txt Line one. Line two.
Line three. Line four. $ $ sed ‘$!G’ data6.txt Line one.
Line two.
Line three.
Line four. $ 原来是空行的位置现在有3个空行了。
这个问题的解决办法是,首先删除数据流中的所有空行,然后用G命令在每行之后插入新的空行。要删除已有的空行,需要将d命令和一个匹配空行的模式一起使用: >/^\(/d 这个模式使用了行首锚点(^)和行尾锚点(\))。将这个模式加入脚本就能生成想要的结果: $ sed ‘/^$/d ; $!G’ data6.txt Line one.
Line two.
Line three.
Line four. $
From #
Linux命令行与shell脚本编程大全