linux shell sed 添加空行

kevin.Zhu 发布于:2022-7-19 16:29 分类:文摘  有 19 人浏览,获得评论 0 条  

https://blog.csdn.net/whatday/article/details/105069960

一、每行前后添加空行

1.每行后面添加一行空行:

sed  G  tmp

 每行前面添加一行空行:

sed  '{x;p;x;}' tmp

2.每行后面添加两行空行:

sed  'G;G'  tmp

 每行前面添加两行空行:

sed '{x;p;x;x;p;x;}' tmp

3.每行后面添加三行空行:

sed 'G;G;G' tmp

  每行前面添加三行空行:

sed '{x;p;x;x;p;x;x;p;x}' tmp

依次类推,添加几行空行,就有几个G或者x;p;x

二、如果行后有空行,则删除,然后每行后面添加空行

sed '/^$/d;G' tmp

三、在匹配行前后添加空行

如果一行里面有shui这个单词,那么在他后面会添加一个空行

sed '/shui/G' tmp  

如果一行里面有shui这个单词,那么在他前后各添加一个空行

sed '/shui/{x;p;x;G}' tmp 

如果一行里面有shui这个单词,那么在他前面添加一个空行

sed '/shui/{x;p;x;}' tmp

在第一行前面添加空行,想在第几行,命令中的1就改成几

sed '1{x;p;x;}' tmp

在第一行后面添加空行,想在第几行,命令中的1就改成几

sed '1G' tmp

四、每几行后面添加一个空行

1.每两行后面增加一个空行

sed 'N;/^$/d;G' file.txt

 每两行前面添加一个空行

sed 'N;/^$/d;{x;p;x;}' tmp

2.每三行后面增加一个空行

sed 'N;N;/^$/d;G' file.txt

  每三行前面增加一个空行

sed 'N;N;/^$/d;{x;p;x;}' tmp

五、以x为开头或以x为结尾的行前后添加空行

1.以xi为开头的行后面添加空行

sed '/^xi/G;' tmp

 以xi为结尾的行前面添加空行

sed '/^xi/{x;p;x;}' tmp

2.以xi为结尾的行后面添加空行

sed '/xi$/G;' tmp

 以xi为结尾的行后面添加空行

sed '/xi$/{x;p;x;}' tmp