Linux“三劍客”-awk、sed咧擂、grep基礎(chǔ)用法

grep 逞盆、sed、awk被稱為linux中的"三劍客"松申。

grep 更適合單純的查找或匹配文本
sed 更適合編輯匹配到的文本
awk 更適合格式化文本云芦,對文本進(jìn)行較復(fù)雜格式處理

重要:awk 、sed 贸桶、grep查找文件中包含字符的行
awk '{if($0~"listAuths") print}' xxx.log 抽出包含listAuths的行內(nèi)容
sed -n -e '/listAuths/p' test3.txt 抽出包含listAuths的行內(nèi)容
grep -n 'listAuths' test3.txt 抽出包含listAuths的行內(nèi)容
find /root/ -name "te*txt" | xargs grep -in "listAuths" 尋找包含listAuths字符串文件名:te開頭txt結(jié)尾的文件

awk其實是一門編程語言舅逸,它支持條件判斷、數(shù)組皇筛、循環(huán)等功能堡赔。所以,我們也可以把awk理解成一個腳本語言解釋器设联。

awk做打印file內(nèi)容

//打印文本中內(nèi)容
[root@wangkjlinux ~]# echo ddd > testawk
[root@wangkjlinux ~]# awk '{print}' testawk 
ddd

awk打印列善已、多列
awk '{print $X}' file 要打印每行的第X列

//打印第二列
[root@wangkjlinux ~]# echo 1111 222 > testawk2
[root@wangkjlinux ~]# awk '{print $2}' testawk2 
222
打印第一列和第二列
[root@wangkjlinux ~]# awk '{print $1,$2}' testawk2
1111 222

篩選展現(xiàn)列or加上自己描述一起展現(xiàn)

awk做運算
兩個列做個減法就好

awk -F
awk -F ':',以冒號為分隔符离例,把輸出的行分隔换团,默認(rèn)是空行

awk -F":" '{print $1}'  /etc/passwd
awk -F":" '{print $1 $3}'  /etc/passwd                       //$1與$3相連輸出,不分隔
awk -F":" '{print $1,$3}'  /etc/passwd                       //多了一個逗號宫蛆,$1與$3使用空格分隔
awk -F":" '{print $1 " " $3}'  /etc/passwd                  //$1與$3之間手動添加空格分隔
awk -F":" '{print "Username:" $1 "\t\t Uid:" $3 }' /etc/passwd       //自定義輸出  
awk -F: '{print NF}' /etc/passwd                                //顯示每行有多少字段
awk -F: '{print $NF}' /etc/passwd                              //將每行第NF個字段的值打印出來
awk -F: 'NF==4 {print }' /etc/passwd                       //顯示只有4個字段的行
awk -F: 'NF>2{print $0}' /etc/passwd                       //顯示每行字段數(shù)量大于2的行
awk '{print NR,$0}' /etc/passwd                                 //輸出每行的行號
awk -F: '{print NR,NF,$NF,"\t",$0}' /etc/passwd      //依次打印行號艘包,字段數(shù)的猛,最后字段值,制表符想虎,每行內(nèi)容
awk -F: 'NR==5{print}'  /etc/passwd                         //顯示第5行
awk -F: 'NR==5 || NR==6{print}'  /etc/passwd       //顯示第5行和第6行
route -n|awk 'NR!=1{print}'                                       //不顯示第一行

awk -F'' OFS=',' 輸出的格式以X做分隔

[root@wangkjlinux ~]# awk '{print}' testawk2
1111 222
[root@wangkjlinux ~]# awk '{print $1,$2 "\n33333,444444"}' OFS=',' testawk2 > testawk3
[root@wangkjlinux ~]# cat testawk3
1111,222
33333,444444
sed 的使用
  • 打印具體行數(shù)內(nèi)容
[root@wangkjlinux ~]# cat testawk3
1111,222
33333,44444
111124,33333,qrrr
123we,ert4,123
1112222
[root@wangkjlinux ~]# sed -n '2p' testawk3
33333,44444
[root@wangkjlinux ~]# sed -n '2,4p' testawk3
33333,44444
111124,33333,qrrr
123we,ert4,123

  • 顯示包含"1111"的行到包含"qrrr"的行之間的行
    sed -n '/1111/,/qrrr/p' testawk3

  • 打印1-4行卦尊,并顯示行號
    sed -n -e '1,4p' testawk3

  • sed 替換部分字段輸出
    sed 's/aa/AA/' test3.txt

grep

1基礎(chǔ)正則表達(dá)式
grep 工具,以前介紹過舌厨。
grep -[acinv] '搜索內(nèi)容串' filename
-a 以文本文件方式搜索
-c 計算找到的符合行的次數(shù)
-i 忽略大小寫
-n 順便輸出行號
-v 反向選擇岂却,即找 沒有搜索字符串的行
其中搜索串可以是正則表達(dá)式! grep -n '[0-9]' xxx.txt

2 利 用[]搜索集合字符
[] 表示其中的某一個字符 ,例如[ade] 表示a或d或e
woody@xiaoc:~/tmp$ grep -n 't[ae]st' regular_express.txt
8:I can't finish the test.
9:Oh! the soup taste good

收搜包含xxx的文件裙椭,并且文件中包含aa字符串
find /root/ -name "te*txt" | xargs grep -in "aa"

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末躏哩,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子揉燃,更是在濱河造成了極大的恐慌扫尺,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炊汤,死亡現(xiàn)場離奇詭異正驻,居然都是意外死亡,警方通過查閱死者的電腦和手機抢腐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門拨拓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人氓栈,你說我怎么就攤上這事渣磷。” “怎么了授瘦?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵醋界,是天一觀的道長。 經(jīng)常有香客問我提完,道長形纺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任徒欣,我火速辦了婚禮逐样,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘打肝。我一直安慰自己脂新,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布粗梭。 她就那樣靜靜地躺著争便,像睡著了一般。 火紅的嫁衣襯著肌膚如雪断医。 梳的紋絲不亂的頭發(fā)上滞乙,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天奏纪,我揣著相機與錄音,去河邊找鬼斩启。 笑死序调,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的兔簇。 我是一名探鬼主播发绢,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼男韧!你這毒婦竟也來了朴摊?” 一聲冷哼從身側(cè)響起默垄,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤此虑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后口锭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朦前,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年鹃操,在試婚紗的時候發(fā)現(xiàn)自己被綠了韭寸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡荆隘,死狀恐怖恩伺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情椰拒,我是刑警寧澤晶渠,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站燃观,受9級特大地震影響褒脯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缆毁,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一番川、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脊框,春花似錦颁督、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至箫爷,卻和暖如春嚷节,著一層夾襖步出監(jiān)牢的瞬間聂儒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工硫痰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衩婚,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓效斑,卻偏偏與公主長得像非春,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子缓屠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容