Unix指令行下輸入的指令是文本,輸出也都是文本。是以,掌握Unix文本處理工具是很重要的一種能力。awk是Unix常用的文本處理工具中的一種,它是以其發明者(Aho,Weinberger和Kernighan)的名字首字元命名的,是一種基于模式比對檢查輸入然後将期望的比對結果處理後輸出到螢幕的文本資料處理工具。
1、awk指令格式
awk ‘模式 {操作}’ 檔案1 檔案2 ……
awk指令的工作過程是這樣的:對于每一個輸入檔案,逐行對其進行檢查,如果該行和awk指令參數的‘模式’部分比對,則對該行執行指令參數‘{操作}’部分所代表的操作。下面是一個簡單的例子:
上面的例子中,用awk指令輸出了awk_test.txt檔案的第一行,其中指令的模式部分所用的NR是awk指令的内建變量,代表檔案的行号。這樣,便可以對所有行号為1的行進行列印輸出。
2、常用的内建變量
變量
含義
NR
目前處理行的行号
FS
字段分隔,預設為空格或TAB
$n
目前處理行的第n個字段
$0
目前處理行的全部内容
這裡要解釋下字段的含義:在awk的使用中,字段分隔符将檔案的一行分隔為各個部分,每一個部分稱為一個字段,從左到右分别為第1個字段,……,第n個字段,其中,第0個字段是指這一整行。字段分隔符如果沒有特殊指定,則預設為空格或tab制表符。
3、幾個例子及其輸出
下面的例子都是對上文中的awk_test.txt檔案的操作。