三大文本處理器的比較

linux中常用的三大文本處理器平夜。grep, sed 和 awk 三種线脚,可謂一個(gè)比一個(gè)高級(jí)那婉,今天只是簡(jiǎn)單粗略的比較一下板甘。

grep 文本搜集工具,結(jié)合正則表達(dá)式非常強(qiáng)大详炬,簡(jiǎn)單易用盐类。但缺點(diǎn)也很明顯,沒(méi)有編輯能力呛谜。功能不全面在跳。

grep 過(guò)濾操作? egrep? fgrep

根據(jù)字符串模式提取文本行

-grep [選項(xiàng)] '匹配模式' 文本文件 。隐岛。猫妙。。聚凹。割坠。? ? ? OR? ? -命令行 | grep [選項(xiàng)] '匹配模式'

常用選項(xiàng):

-E:開啟擴(kuò)展(Extend)的正則表達(dá)式

-i:忽略大小寫 (ignore case)

-v:取反 (invert)

-n:顯示行號(hào)

-w:被匹配的文本只能是單詞,而不是單詞的某一部分妒牙。

-c:顯示總共有多少行被匹配到彼哼,而不是匹配到的內(nèi)容。-cv顯示多少行沒(méi)匹配到湘今。

-o:只顯示被匹配到的字符串敢朱。

--color:將匹配到的內(nèi)容以顏色高亮顯示。

egrep過(guò)濾工具? = grep -E

文本處理順序

-以行為單位象浑,逐行進(jìn)行處理

-默認(rèn)只輸出與表達(dá)式相匹配的文本行蔫饰。

基本用法

-格式 1. egrep [選項(xiàng)] '正則表達(dá)式‘ 文件。愉豺。篓吁。。蚪拦。杖剪。 OR? 前置命令 | egrep [選項(xiàng)] '正則表達(dá)式‘

-q:靜默冻押,無(wú)任何輸出,一般用于檢驗(yàn)(看$盛嘿?返回值)洛巢。

sed是一項(xiàng)Linux指令,功能同awk類似次兆,差別在于稿茉,sed簡(jiǎn)單,對(duì)列處理的功能要差一些芥炭,awk的功能復(fù)雜漓库,對(duì)列處理的功能比較強(qiáng)大。

sed工具概述:stream EDitor,流式編輯器(這個(gè)和vi有類似之處园蝠,不過(guò)vi是交互的)

-非交互渺蒿,基于模式匹配過(guò)濾及修改文本。

-逐行處理彪薛,并將結(jié)果輸出到屏幕茂装。

-可實(shí)現(xiàn)對(duì)文本的輸出,刪除善延,替代少态,復(fù)制,剪切挚冤,導(dǎo)入導(dǎo)出等各種操作况增。

主要用法:

-格式1:前置命令 | sed [選項(xiàng)] '編輯指令‘

-格式2:sed [選項(xiàng)] '編輯指令' 文件。训挡。澳骤。。澜薄。为肮。

命令選項(xiàng)

-n:屏蔽默認(rèn)輸出(全部文本)

-i:直接修改文件內(nèi)容。

-r:?jiǎn)⒂脭U(kuò)展正則表達(dá)式(若與其他選項(xiàng)一起使用肤京,則為首選項(xiàng))颊艳。

-{}:可組合多個(gè)命令,以分號(hào)分隔忘分。

定址符棋枕,即[地址1][地址2]

-用來(lái)指定處理的起,止行數(shù)妒峦。

-省略定址符時(shí)重斑,默認(rèn)逐行處理全部文本。

-地址可表示為文本的“行號(hào)”肯骇,或者用來(lái)匹配的正則表達(dá)式窥浪。

處理動(dòng)作

操作符? ? ? ? ? ? ? 用途? ? ? ? ? ? ? ? ? ? ? ? 指令示例

P? ? ? ? 打印行? ? ? ? 2:4p 輸出第2祖很,3,4行

2p漾脂;4p 輸出第2行假颇,4行

d? ? ? ? 刪除行? ? ? ? 2,4d? 刪除第2骨稿,3笨鸡,4行

s? ? ? ? 字符號(hào)替代? s/old/new/ 將每行的第一個(gè)old替換為new

sed的文本塊處理動(dòng)作

i 行前插入文本? a 行后插入文本? ? c? 替代當(dāng)前行

sed高級(jí)應(yīng)用

導(dǎo)入導(dǎo)出操作

-r動(dòng)作應(yīng)結(jié)合 -i 選項(xiàng)才會(huì)存入,否則只會(huì)輸出坦冠。 -w 動(dòng)作以覆蓋的方式另存為

sed復(fù)制剪切

模式空間

-存放當(dāng)前處理的行镜豹,將處理結(jié)果輸出

-若當(dāng)前行不符合處理?xiàng)l件,則原樣輸出

-處理完當(dāng)前行再讀入下一行處理

保持空間

-作用類似于“剪切版”

-默認(rèn)存放一個(gè)空行 (換行符\n)

sed 復(fù)制剪切

-H:模式空間---[追加]--->保持空間? ? 復(fù)

-h: 模式空間---[覆蓋]--->保持空間? ? 制

-G: 粘貼 追加

-g: 粘貼 覆蓋

蓝牲! 取反操作

AWK是一種優(yōu)良的文本處理工具。它不僅是 Linux 中也是任何環(huán)境中現(xiàn)有的功能最強(qiáng)大的數(shù)據(jù)處理引擎之一泰讽。最簡(jiǎn)單地說(shuō)例衍, AWK 是一種用于處理文本的編程語(yǔ)言工具。AWK 在很多方面類似于 shell 編程語(yǔ)言已卸,盡管 AWK 具有完全屬于其本身的語(yǔ)法佛玄。AWK 提供了極其強(qiáng)大的功能:可以進(jìn)行樣式裝入、流控制累澡、數(shù)學(xué)運(yùn)算符梦抢、進(jìn)程控制語(yǔ)句甚至于內(nèi)置的變量和函數(shù)。它具備了一個(gè)完整的語(yǔ)言所應(yīng)具有的幾乎所有精美特性愧哟。實(shí)際上 AWK 的確擁有自己的語(yǔ)言:AWK 程序設(shè)計(jì)語(yǔ)言奥吩, 三位創(chuàng)建者已將它正式定義為“樣式掃描和處理語(yǔ)言”。它允許您創(chuàng)建簡(jiǎn)短的程序蕊梧,這些程序讀取輸入文件霞赫、為數(shù)據(jù)排序、處理數(shù)據(jù)肥矢、對(duì)輸入執(zhí)行計(jì)算以及生成報(bào)表端衰,還有無(wú)數(shù)其他的功能。

awk 工具概述

awk 編程語(yǔ)言/ 數(shù)據(jù)處理引擎

-基于模式匹配檢查輸入文本甘改,逐行處理并輸出旅东。

-通常用在shell腳本中,獲取制定的數(shù)據(jù)十艾。

-單獨(dú)用時(shí)抵代,可對(duì)文本數(shù)據(jù)做統(tǒng)計(jì)。

主要用法

-格式1:前置命令|awk∨备[選項(xiàng)] ‘[條件]{編輯指令}'

-格式2:awk≈魇亍[選項(xiàng)]≠骶蟆'[條件]{編輯指令}' 文件。参淫。救湖。

常用選項(xiàng):-F:指定分隔符,可省略(默認(rèn)空格或Tab位)

-V:調(diào)用外部shell變量

awk內(nèi)置變量∠巡拧(有特殊含義鞋既,可直接使用)

FS   保存或設(shè)置字段分隔符,例如FS=“:”

$n 指定分隔的第n個(gè)字段耍铜,如$1邑闺,$3分別表示第一,第三列

$0 當(dāng)前讀入的整行文本內(nèi)容

NF   記錄當(dāng)前處理行的字段個(gè)數(shù)(列數(shù))

NR   記錄當(dāng)前已讀入行的數(shù)量(行數(shù))

awk過(guò)濾

在所有行前處理棕兼,BEGIN{}

-讀入第一行文本之前執(zhí)行

-一般用來(lái)初始化操作

逐行處理陡舅,{}

-逐行讀入文本執(zhí)行相應(yīng)的處理    可單獨(dú)使用

-是最常見的編輯指令塊      也可以同時(shí)一起使用

在所有行處理,END{}

-處理完最后一行文本之后執(zhí)行

-一般用來(lái)輸出處理結(jié)果

處理?xiàng)l件概述

格式回顧

-awk“橹俊[選項(xiàng)]“醒堋'[條件]{編輯指令}' 文件。茎芋。颅眶。。田弥。涛酗。

條件的表現(xiàn)形式?

-正則表達(dá)式⊥迪谩-~匹配商叹,!~不匹配

-數(shù)值/字符串比較

-邏輯比較

-運(yùn)算符

數(shù)值比較

==等于 ≈黄谩I蜃浴=不等于  >大于 」技恕>=大于或等于 】萃尽<小于  <=小于或等于

邏輯比較

&&期望多個(gè)條件都成立

||只要有一個(gè)條件成立即滿足要求

運(yùn)算符

+〖巍-±乙摹* /∧醵琛%⊥砹搿++ --⊙Α+=√贡ā-=】馑怠*= /=∑瘛%=

利用sort對(duì)提取結(jié)果排序

-n:按數(shù)字升序排列

-k:針對(duì)指定的字段進(jìn)行排序

-r:反向排序

awk分支結(jié)構(gòu)

單分支 if(條件){編輯指令}

雙分支 if(條件){編輯指令1}else{編輯指令2}

多分支? if(條件){編輯指令1}else if(條件){編輯指令2}......else{編輯指令N}

while循環(huán)? -while(條件){編輯指令}

數(shù)組的定義及使用

定義數(shù)組

-格式:數(shù)組名[下標(biāo)]=元素值

調(diào)用數(shù)組

-格式:數(shù)組名[下標(biāo)]

遍歷數(shù)組

-用法:for(變量in數(shù)組名){print數(shù)組名[變量]}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末潜的,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子字管,更是在濱河造成了極大的恐慌啰挪,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘲叔,死亡現(xiàn)場(chǎng)離奇詭異亡呵,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)硫戈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門锰什,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人丁逝,你說(shuō)我怎么就攤上這事歇由。” “怎么了果港?”我有些...
    開封第一講書人閱讀 157,570評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)糊昙。 經(jīng)常有香客問(wèn)我辛掠,道長(zhǎng),這世上最難降的妖魔是什么释牺? 我笑而不...
    開封第一講書人閱讀 56,535評(píng)論 1 284
  • 正文 為了忘掉前任萝衩,我火速辦了婚禮,結(jié)果婚禮上没咙,老公的妹妹穿的比我還像新娘猩谊。我一直安慰自己,他們只是感情好祭刚,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評(píng)論 6 386
  • 文/花漫 我一把揭開白布牌捷。 她就那樣靜靜地躺著,像睡著了一般涡驮。 火紅的嫁衣襯著肌膚如雪暗甥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,850評(píng)論 1 290
  • 那天捉捅,我揣著相機(jī)與錄音撤防,去河邊找鬼。 笑死棒口,一個(gè)胖子當(dāng)著我的面吹牛寄月,可吹牛的內(nèi)容都是我干的辜膝。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼漾肮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼厂抖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起初橘,我...
    開封第一講書人閱讀 37,747評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤验游,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后保檐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耕蝉,經(jīng)...
    沈念sama閱讀 44,207評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評(píng)論 2 327
  • 正文 我和宋清朗相戀三年夜只,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了垒在。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,683評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扔亥,死狀恐怖场躯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旅挤,我是刑警寧澤踢关,帶...
    沈念sama閱讀 34,342評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站粘茄,受9級(jí)特大地震影響签舞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜柒瓣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評(píng)論 3 315
  • 文/蒙蒙 一儒搭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧芙贫,春花似錦搂鲫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至拣挪,卻和暖如春蓄诽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背媒吗。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工仑氛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,401評(píng)論 2 360
  • 正文 我出身青樓锯岖,卻偏偏與公主長(zhǎng)得像介袜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子出吹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評(píng)論 2 349

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