運維學(xué)習(xí)交流群-點我加群:598972270
一.sed命令的格式
完整格式
sed |
-n |
'3s#oldboy#oldgirl#gp' |
filename |
sed命令 |
sed參數(shù) |
3表示第3行 s表示替換 gp表示標(biāo)記(flag) |
filename |
簡單格式
這里記住條件命令即可
條件就是你要找哪1行,可以是行號或范圍等等.
命令就是滿足條件后扼倘,要做什么开仰,可以是顯示(p),刪除(d),替換(s),增加(c a i)等等
二.sed命令常用參數(shù)
參數(shù) |
含義 |
-n |
取消默認(rèn)輸出 |
-i |
修改文件內(nèi)容 |
-i.bak |
先備份文件為oldboy.txt.bak 然后修改文件內(nèi)容 |
-r |
支持?jǐn)U展正則 |
-f |
指定sed腳本 |
三.sed核心功能之查找(p)
1.模擬的文件
cat >~/lidao.txt<<EOF
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
EOF
2.根據(jù)行號顯示某1行
[root@oldboyedu59 ~]# sed -n '5p' lidao.txt
105,feixue,CIO
3.根據(jù)行號范圍進(jìn)行顯示
[root@oldboyedu59 ~]# sed -n '1,5p' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
4.進(jìn)行過濾(類似grep或egrep)
[root@oldboyedu59 /oldboy]# sed -n '/oldboy/p' lidao.txt
101,oldboy,CEO
[root@oldboyedu59 /oldboy]# sed -n '/[a-z]/p' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
找出文件中包含oldboy或yy的行
[root@oldboyedu59 /oldboy]# sed -nr '/oldboy|yy/p' lidao.txt
101,oldboy,CEO
104,yy,CFO
5.通過正則表達(dá)式進(jìn)行范圍過濾
[root@oldboyedu59 /oldboy]# sed -n '/102/,/105/p' lidao.txt
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
四.sed核心功能之增加(c a i)
命令 |
含義 |
c |
replace 清空這行內(nèi)容然后寫入新內(nèi)容 |
a |
append 在這行下面追加內(nèi)容 |
i |
insert 在這行上面插入內(nèi)容 |
[root@oldboyedu59 /oldboy]# cat lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO
[root@oldboyedu59 /oldboy]# sed '3a119,xiaohong,UFO' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO
[root@oldboyedu59 /oldboy]# cat lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
102,zhangyao,CTO
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO
[root@oldboyedu59 /oldboy]# sed '3i12306,lidao,HO' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
12306,lidao,HO
102,zhangyao,CTO
119,xiaohong,UFO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
110,lidao,COCO
五.sed核心功能之刪除(d)
1.測試文件
I am oldboy teacher!
I teach linux.
I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 1351441522
not 4900000448
my god,i am not oldbey,but OLDBOY!
2.刪除 /oldboy/oldboy.txt中的空行
sed '/^$/d' oldboy.txt
sed -n '/^$/!p' oldboy.txt
grep -v '^$' oldboy.txt
awk 作為擴(kuò)展
awk '/^$/' oldboy.txt
awk '!/^$/' oldboy.txt
六.sed核心功能之替換(sed命令中的瑞士軍刀)
七.sed增刪改查 總結(jié)(圖)
老男孩教育-sed命令格式和功能-2019-v2.jpg