awk模式匹配

2022-04-07 02:37:29 字數 655 閱讀 4232

在這篇文章中,我們將看到許多小的,甚至沒有什麼意義的例子,但他們能夠驗證awk程式指令碼的主要

特點。當awk讀入一行時,它試圖匹配指令碼中的每個模式匹配規則。只有與乙個特定的模式相匹配的輸入行才能成為操作物件。如果沒有指定操作,與模式相匹配的輸入行將被列印出來(執行列印語句是乙個預設操作)。參閱下面的指令碼:

/^$/

該指令碼表示:如果輸入行為空,那麼列印"this is a blank line" 。這裡的模式為乙個正規表示式,用來表示乙個空行。這個處理和我們以前所見到的一樣,只包含一條print語句。

如果我們將這個指令碼放在乙個稱為awkscr的檔案中,並使用名為test的輸入檔案,這個檔案中包含3個空行,然後使下面的命令執行這個指令碼:

$ awk -f awkscr test

this is a blank line.

this is a blank line.

this is a blank line.

(從這裡開始,我們將假定指令碼放在乙個單獨的檔案中,並使用-f命令列選項來呼叫。)這個結果告訴我們在test中有3個空行,指令碼忽咯了非空的行。

給以上的指令碼加入幾個新的規則。現在的指令碼要對輸入進行分析,並將他們歸類為整數、字串或空行。

/[0-9]+/

/[a-za-z]+/

/^$/

awk 模式匹配

使用awk作為文字處理工具,正規表示式是少不了的。要掌握這個工具的正規表示式使用。其實,我們不必單獨去學習它的正規表示式。正規表示式就像一門程式語言,有自己語法規則已經表示意思。對於不同工具,其實大部分表示意思相同的。在linux眾多文字處理工具 awk,sed,grep,perl 裡面用到正規表示...

awk的模式匹配

awk的模式匹配 awk begin pattern end 當我們需要在文字中取出一段東西的時候,可以使用awk。awk和sed一樣是個比較妖的東西,有正則,但是正則語法又和linux下的不一樣。1.awk 正則 file 2.awk 正則1 正則2 file 在1中,被正規表示式匹配到的行,將會...

awk匹配整行

如果沒有指定操作,則單個正規表示式將對整行進行模式匹配,並列印出所匹配的行。可以使用元字元 來表示需要進行行首匹配的正規表示式。範例 cat employees tom jones 44245 12 66543354 mary adams 534611 4 6328765 sally chang 1...