linux學習三劍客之sed增刪改查都有哪些知識?

一.sed命令的格式

完整格式linux

sed -n '3s#oldboy#oldgirl#gp' filename
sed命令 sed參數 3表示第3行 s表示替換 gp表示標記(flag) filename

簡單格式正則表達式

這裏記住條件命令便可
條件就是你要找哪1行,能夠是行號或範圍等等.
命令就是知足條件後,要作什麼,能夠是顯示(p),刪除(d),替換(s),增長(c a i)等等swift

找誰 幹啥
條件 命令

二.sed命令經常使用參數

參數 含義
-n 取消默認輸出
-i 修改文件內容
-i.bak 先備份文件爲oldboy.txt.bak 而後修改文件內容
-r 支持擴展正則
-f 指定sed腳本

三.sed核心功能之查找(p)

1.模擬的文件bash

cat >~/lidao.txt<<EOF
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
EOF

2.根據行號顯示某1行app

[root@oldboyedu59 ~]# sed -n '5p' lidao.txt
105,feixue,CIO

3.根據行號範圍進行顯示ide

[root@oldboyedu59 ~]# sed -n '1,5p' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO

4.進行過濾(相似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的行code

[root@oldboyedu59 /oldboy]# sed -nr '/oldboy|yy/p' lidao.txt
101,oldboy,CEO
104,yy,CFO

5.經過正則表達式進行範圍過濾blog

[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 清空這行內容而後寫入新內容
a append 在這行下面追加內容
i insert 在這行上面插入內容
[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.測試文件it

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 做爲擴展
awk  '/^$/' oldboy.txt
awk  '!/^$/' oldboy.txt
相關文章
相關標籤/搜索