sed、awk、perl混合实现同样的功能——文本间隔

在每一行后面增加一空行

sed G
awk '{printf("%s\n\n",$0)}'
perl -ne 'print "$_\n"'
perl -pe '$_ .= "\n"'
perl -pe '$\="\n"'

将原来的所有空行删除并在每一行后面增加一空行。

这样在输出的文本中每一行后面将有且只有一空行。

sed '/^$/d;G'
awk '!/^$/{printf("%s\n\n",$0)}'
perl -ne 'print "$_\n" unless /^$/'

在每一行后面增加两行空行

sed 'G;G'
awk '{printf("%s\n\n\n",$0)}'
perl -ne 'print "$_\n\n"'
perl -pe '$_ .= "\n\n"'

将第一个脚本所产生的所有空行删除(即删除所有偶数行)

sed 'n;d'
awk '{f=!f;if(f)print $0}'
perl -ne 'print if $.%2'
perl -pe '$_="" if $.%2'

在匹配式样“regex”的行之前插入一空行

sed '/regex/{x;p;x;}'
awk '{if(/regex/)printf("\n%s\n",$0);else print $0}'
perl -pe 'print "\n" if /regex/'

在匹配式样“regex”的行之后插入一空行

sed '/regex/G'
awk '{if(/regex/)printf("%s\n\n",$0);else print $0}'
perl -ne 'print; print "\n" if /regex/'
perl -pe '$_ .= "\n" if /regex/'

在匹配式样“regex”的行之前和之后各插入一空行

sed '/regex/{x;p;x;G;}'
awk '{if(/regex/)printf("\n%s\n\n",$0);else print $0}'
perl -pe 's/.*regex.*/\n$_/'
perl -pe '$_ = "\n$_\n" if /regex/'
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容