day17三劍客grep sed

1.grep 過濾

參數(shù)

-i 不區(qū)分大小寫
-v 取反
-o 顯示過程(匹配到就顯示出來)
-n 顯示行號
-E 支持?jǐn)U展正則(egrep)
-c 統(tǒng)計包含xxx一共多少行

-w 取字符串(單詞)
-l 找包含字符串的文件名不顯示內(nèi)容
-R 遞歸進(jìn)行過濾

-A 顯示找出來的內(nèi)容以及接下來幾行
-B 顯示找出來的內(nèi)容以及上面幾行
-C -C2 顯示找出來的內(nèi)容以及上下各兩行

2.sed (stream editor 流編輯器)

增刪改查

執(zhí)行過程

參數(shù):-n 取消輸出
seq -n '3p' /oldboy/oldboy.txt


sed執(zhí)行過程
sed命令格式和功能

功能:增刪改查

1.查:p print(查看)

根據(jù)行號進(jìn)行查找
查看lidao.txt這個文件中第三行的內(nèi)容
sed -n '3p' lidao.txt

[root@yuyingqian ~]# cat lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
[root@yuyingqian ~]# sed -n '3p' lidao.txt
103,Alex,COO

根據(jù)行號范圍進(jìn)行查找
查看lidao.txt這個文件中第二行到第四行的內(nèi)容
sed -n'2,4p' lidao.txt

[root@yuyingqian ~]# sed -n '2,4p' lidao.txt
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO

根據(jù)正則進(jìn)行過濾
查看lidao.txt文件中帶oldboy這個內(nèi)容的行
sed -rn '/oldboy/p' lidao.txt

[root@yuyingqian ~]# cat lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
[root@yuyingqian ~]# sed -rn '/oldboy/p' lidao.txt 
101,oldboy,CEO

使用正則表示范圍
查看lidao.txt文件中帶102內(nèi)容的行到帶105內(nèi)容的行
sed -n '/102/,/105/p' lidao.txt

[root@yuyingqian ~]# sed -n '/102/,/105/p' lidao.txt 
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
2.增(類似>>)

參數(shù) a : append 在第幾行下增加內(nèi)容
在第二行下插入180,yuyingqian,ZNB
sed '2a180,yuyingqian,ZNB' lidao.txt

[root@yuyingqian ~]# cat lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
[root@yuyingqian ~]# sed '2a180,yuyingqian,ZNB' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
180,yuyingqian,ZNB
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO

參數(shù) i: 在第幾行上面增加內(nèi)容
在第二行上插入180,yuyingqian,ZNB
sed '2i180,yuyingqian,ZNB' lidao.txt

[root@yuyingqian ~]# sed >'2i180,yuyingqian,ZNB' lidao.txt
101,oldboy,CEO
180,yuyingqian,ZNB
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO

參數(shù) c :replac 先清空再寫入
把第二行內(nèi)容替換為180,yuyingqian,ZNB
sed '2c180,yuyingqian,ZNB' lidao.txt

[root@yuyingqian ~]# cat lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
[root@yuyingqian ~]# sed '2c180,yuyingqian,ZNB' lidao.txt
101,oldboy,CEO
180,yuyingqian,ZNB
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
3.刪

參數(shù) d:刪除
把第二行內(nèi)容刪除掉
sed '2d' lidao.txt

[root@yuyingqian ~]# cat lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
[root@yuyingqian ~]# sed '2d' lidao.txt
101,oldboy,CEO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
4.改

參數(shù)s:sub(默認(rèn)替換第一個字符) g(全局替換)
格式:sed 's###g'
把oldboy替換為oldgirl

[root@yuyingqian ~]# cat lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
[root@yuyingqian ~]# sed 's#oldboy#oldgirl#g' lidao.txt
101,oldgirl,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO

后向引用(在前面兩個(##)把你要的內(nèi)容保護(hù)起來后兩個(##)中間用\數(shù)字引用)
把123456 改為<123456>

[root@yuyingqian ~]# echo 123456 | sed -r 's#(.*)#<\1>#g'
<123456>

把123456 改為12<34>56

[root@yuyingqian ~]# echo 123456 | sed -r 's#(..)(..)(..)#\1<\2>\3#g'
12<34>56

把123456改為<1><2><3><4><5><6>

[root@yuyingqian ~]# echo 123456 | sed -r 's#(.)#<\1>#g'
<1><2><3><4><5><6>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 說明:本篇文章來自老男孩,這里只做備份記錄 功能說明 Sed是Stream Editor(流編輯器)縮寫,是操作、...
    think_lonely閱讀 796評論 0 2
  • 王文卓 課堂筆記 三劍客: grep 過濾 -E 支持?jǐn)U展正則===egrep -o 只顯示匹配到的內(nèi)容 顯示g...
    Wave_e430閱讀 204評論 0 0
  • 一、前言 我們都知道,在Linux中一切皆文件,比如配置文件,日志文件,啟動文件等等。如果我們相對這些文件進(jìn)行一些...
    以七v為書閱讀 1,678評論 0 5
  • 三劍客: grep 過濾 -E 支持?jǐn)U展正則===egrep -o 只顯示匹配到的內(nèi)容 顯示grep執(zhí)行過程 -...
    高博666閱讀 179評論 0 0
  • 我以為見到你了 在深潛的隱秘之地 你帶來的 陪伴我一生的哀傷 是如此無法原諒 為這 我們不會再見 相逢 只能在文字...
    Cherie雨絲閱讀 183評論 0 2

友情鏈接更多精彩內(nèi)容