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

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

作者: hygine | 来源:发表于2020-02-25 17:26 被阅读0次

在每一行后面增加一空行

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/'

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/cgpxchtx.html