shell之三大文本處理工具grep慎冤、sed及awk

grep、sed和awk都是文本處理工具沧卢,雖然都是文本處理工具單卻都有各自的優(yōu)缺點蚁堤,一種文本處理命令是不能被另一個完全替換的,否則也不會出現(xiàn)三個文本處理命令了但狭。只不過披诗,相比較而言,sed和awk功能更強大而已立磁,且已獨立成一種語言來介紹呈队。

grep:文本過濾器,如果僅僅是過濾文本唱歧,可使用grep宪摧,其效率要比其他的高很多;

sed:Stream EDitor颅崩,流編輯器几于,默認只處理模式空間,不處理原數(shù)據(jù)沿后,如果你處理的數(shù)據(jù)是針對行進行處理的沿彭,可以使用sed;

awk:報告生成器得运,格式化以后顯示膝蜈。如果對處理的數(shù)據(jù)需要生成報告之類的信息,或者你處理的數(shù)據(jù)是按列進行處理的熔掺,最好使用awk饱搏。

grep

grep(關(guān)鍵字: 截取) 文本搜集工具, 結(jié)合正則表達式非常強大
主要參數(shù) []
-c : 只輸出匹配的行
-I : 不區(qū)分大小寫
-h : 查詢多文件時不顯示文件名
-l : 查詢多文件時, 只輸出包含匹配字符的文件名
-n : 顯示匹配的行號及行
-v : 顯示不包含匹配文本的所有行(我經(jīng)常用除去grep本身)
基本工作方式: grep 要匹配的內(nèi)容 文件名, 例如:
grep 'test' d* 顯示所有以d開頭的文件中包含test的行
grep 'test' aa bb cc 顯示在 aa bb cc 文件中包含test的行
grep '[a-z]{5}' aa 顯示所有包含字符串至少有5個連續(xù)小寫字母的串

上文已經(jīng)做出說明

    http://www.cnblogs.com/-zyj/p/5760484.html

sed

sed(關(guān)鍵字: 編輯) 以行為單位的文本編輯工具 sed可以直接修改檔案, 不過一般不推薦這么做, 可以分析 standard input
基本工作方式: sed [-nef] '[動作]' [輸入文本]
a\ : 在當前行后添加一行或多行。多行時除最后一行外置逻,每行末尾需用“\”續(xù)行
   c\ :用此符號后的新文本替換當前行中的文本推沸。多行時除最后一行外,每?末尾需用”"續(xù)行
    i\ :在當前行之前插入文本。多行時除最后一行外鬓催,每行末尾需用”"續(xù)行刪除行
   h : 把模式空間里的內(nèi)容復制到暫存緩沖區(qū)
   H : 把模式空間里的內(nèi)容追加到暫存緩沖區(qū)
   g : 把暫存緩沖區(qū)里的內(nèi)容復制到模式空間肺素,覆蓋原有的內(nèi)容
   G: 把暫存緩沖區(qū)的內(nèi)容追加到模式空間?,追加在原有內(nèi)容的后面
   l : 列出非打印字符
   p : 打印行
   q : 結(jié)束或退出sed
   r : 從文件中讀取輸入行
   ! : 對所選行以外的所有行應(yīng)用命令
    s : 用一個字符串替換另一個
    g : 在行內(nèi)進行全局替換
  w : 將所選的行寫入文件
   x : 交換暫存緩沖區(qū)與模式空間的內(nèi)容
    y : 將字符替換為另一字符(不能對正則表達式使用y命令)
選項
  -e : 進行多項編輯宇驾,即對輸入行應(yīng)用多條sed命令時使用
  -n : 取消默認的輸出
  -f :指定sed腳本的文件名

示例:

image

awk

sed以行為單位處理文件,awk比sed強的地方在于不僅能以行為單位還能以列為單位處理文件倍靡。 awk缺省的行分隔符是換行,缺省的列分隔符是連續(xù)的空格和Tab,

但是行分隔符和列分隔符都可以自定義,比如/etc/passwd文件的每一行有干個字段,字段之間以:分隔,就可以重新定義awk的列分隔符為:并以列為單位處理這個文件。

awk實際上是一門很復雜的腳本語言,還有像C語言一樣的分支和循環(huán)結(jié)構(gòu),但是基本語法和sed類似,awk命令行的基本形式為:

awk option 'script' file1 file2 ...

  awk option -f scriptfile file1 file2 ... 和sed一樣,awk處理的文件既可以由標準輸入重定向得到,也可以當命令行參數(shù)傳入,編輯命令可以直接當命令行參數(shù)傳入,也可以用-f參數(shù)指定一個腳本文件,

編輯命令的格式為:

/pattern/{actions}

和sed類似,pattern是正則表達式,actions是一系列操作课舍。 awk程序一行一行讀出待處理文件,如果某一行與pattern匹配,或者滿足condition條件,

則執(zhí)行相應(yīng)的actions,如果一條awk命令只有actions部分,則actions作用于待處理文件的每一行塌西。

示例:

image

注:

$0:表示當前行

$1:表示當前行的第一列

$2:表示當前行的第二列

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市筝尾,隨后出現(xiàn)的幾起案子捡需,更是在濱河造成了極大的恐慌,老刑警劉巖筹淫,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件站辉,死亡現(xiàn)場離奇詭異,居然都是意外死亡损姜,警方通過查閱死者的電腦和手機饰剥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來薛匪,“玉大人捐川,你說我怎么就攤上這事∫菁猓” “怎么了古沥?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長娇跟。 經(jīng)常有香客問我岩齿,道長,這世上最難降的妖魔是什么苞俘? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任盹沈,我火速辦了婚禮,結(jié)果婚禮上吃谣,老公的妹妹穿的比我還像新娘乞封。我一直安慰自己,他們只是感情好岗憋,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布肃晚。 她就那樣靜靜地躺著,像睡著了一般仔戈。 火紅的嫁衣襯著肌膚如雪关串。 梳的紋絲不亂的頭發(fā)上拧廊,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音晋修,去河邊找鬼吧碾。 笑死,一個胖子當著我的面吹牛墓卦,可吹牛的內(nèi)容都是我干的倦春。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼落剪,長吁一口氣:“原來是場噩夢啊……” “哼溅漾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起著榴,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屁倔,沒想到半個月后脑又,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡锐借,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年问麸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钞翔。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡严卖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出布轿,到底是詐尸還是另有隱情哮笆,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布汰扭,位于F島的核電站稠肘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏萝毛。R本人自食惡果不足惜项阴,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望笆包。 院中可真熱鬧环揽,春花似錦、人聲如沸庵佣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秧了。三九已至跨扮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背衡创。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工帝嗡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人璃氢。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓哟玷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親一也。 傳聞我的和親對象是個殘疾皇子巢寡,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

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