首页 > 其他 > 详细

sed指定某行插入、追加、全局替换

时间:2017-07-26 21:43:55      阅读:289      评论:0      收藏:0      [点我收藏+]

sed指定某行插入、追加、全局替换

分类:Linux


 (1088)  (0)


有时候会有这样的需求,在指定的行后面或者是前面追加一行,这个时候可以使用sed来完成,具体用法如下


a\ 在指定的行后面追加一行 

b\ 在指定的行前面追加一行


使用指定的行号追加内容,在使用行号的过程中,需要注意的问题有以下


N;后面只能使用偶数,且不可以为0


a表示在指定的行后面追加一行


i表示在当前行插入一行,如果指定行为4,其实最终的结果插入行的位置是第三行。


sed -i ‘N;2a\newline‘ 1.txt

sed -i ‘N;2i\newline‘ 1.txt


[root@lanmp shell]# cat << eof > 1.txt

> a

> b

> c

> d

> eof

[root@lanmp shell]# sed -i ‘N;2a2222‘ 1.txt

[root@lanmp shell]# cat 1.txt

a

b

2222

c

d

[root@lanmp shell]# sed -i ‘N;2i2222‘ 1.txt

[root@lanmp shell]# cat 1.txt

2222

a

b

2222

c

d



[root@RS2 shell]# cat 1.txt

1111

3333

[root@RS2 shell]# sed -i ‘/^1111$/a\2222‘ 1.txt ; cat 1.txt

1111

2222

3333

[root@RS2 shell]# sed -i ‘/^1111$/i\0000‘ 1.txt ; cat 1.txt

0000

1111

2222

3333

下面是把所有匹配的字符都替换为指定的字符


[root@SLAVE ~]# cat << eof > 1.txt

> 1111

> 222333333

> 44444444445

> eof

[root@SLAVE ~]# sed -i 2{s/2/3/g} 1.txt

[root@SLAVE ~]# cat 1.txt

1111

333333333

44444444445

[root@SLAVE ~]# sed -i 3{s/4/5/g} 1.txt

[root@SLAVE ~]# cat !$

cat 1.txt

1111

333333333

55555555555


本文出自 “隐隐的泪” 博客,请务必保留此出处http://lijuntao.blog.51cto.com/11691147/1951236

sed指定某行插入、追加、全局替换

原文:http://lijuntao.blog.51cto.com/11691147/1951236

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!