linux系统中添加空行

1、在所有行后面添加空行,awk实现

root@PC1:/home/test# ls
a.txt
root@PC1:/home/test# cat a.txt
i 3 a
d g x
8 6 k
m x a
a y n
root@PC1:/home/test# awk '{print $0, "\n"}' a.txt
i 3 a

d g x

8 6 k

m x a

a y n

 

2、在指定行后添加空行, awk实现

root@PC1:/home/test# ls
a.txt
root@PC1:/home/test# cat a.txt
i 3 a
d g x
8 6 k
m x a
a y n
root@PC1:/home/test# awk '{if(NR == 3) {print $0, "\n"} else {print $0}}' a.txt
i 3 a
d g x
8 6 k

m x a
a y n

 

3、利用正则匹配添加空行, awk实现

root@PC1:/home/test# ls
a.txt
root@PC1:/home/test# cat a.txt
i 3 a
d g x
8 6 k
m x a
a y n
root@PC1:/home/test# awk '{if($0 ~ /x/ ) {print $0, "\n"} else {print $0}}' a.txt
i 3 a
d g x

8 6 k
m x a

a y n

 

4、行首、行尾添加空行 awk实现

root@PC1:/home/test# ls
a.txt
root@PC1:/home/test# cat a.txt
i 3 a
d g x
8 6 k
m x a
a y n
root@PC1:/home/test# awk 'BEGIN{printf("\n")}{print $0}' a.txt

i 3 a
d g x
8 6 k
m x a
a y n
root@PC1:/home/test# awk '{print $0} END {printf("\n")}' a.txt
i 3 a
d g x
8 6 k
m x a
a y n

root@PC1:/home/test# awk 'BEGIN{printf("\n")}{print $0} END {printf("\n")}' a.txt

i 3 a
d g x
8 6 k
m x a
a y n

 

5、指定行 批量添加 sed实现

root@PC1:/home/test# ls
a.txt  b.txt
root@PC1:/home/test# cat a.txt
i 3 a
tagx@d g x
tagx@8 6 k
m x a
tagx@a y n
root@PC1:/home/test# cat b.txt
2
3
5
root@PC1:/home/test# for i in `cat b.txt`; do sed "$i s/^/tagx@/" a.txt -i; done   ## 加个标签
root@PC1:
/home/test# cat a.txt i 3 a tagx@tagx@d g x tagx@tagx@8 6 k m x a tagx@tagx@a y n root@PC1:/home/test# sed '/^tagx/G' a.txt i 3 a tagx@tagx@d g x tagx@tagx@8 6 k m x a tagx@tagx@a y n

 

posted @ 2021-11-21 12:33  小鲨鱼2018  阅读(517)  评论(0编辑  收藏  举报