1)改變欄位分隔符
gawk中,預設的欄位分隔符一般是空格符或TAB.也可以在命令行使用-F選項改變字元分隔符,只需在-F後面跟著你想用的分隔符即可.
例如:gawk -F";"'/root/ {print}' /etc/passwd
2)簡單的正則表達式
gawk語言在格式匹配時符合正則表達式.
^ 表示欄位的開始.
例如:$3 ~ /^b/ 如果第三個欄位以字元b開始,則匹配.
$ 表示欄位的結束.例如:$3 ~ /b$/ 如果第三個欄位以字元b結束,則匹配.
. 表示和任何單字元m匹配.例如:$3 ~ /i.m/ 如果第三個欄位有字元i,則匹配.
| 表示“或”.例如:/cat | CAT/ 和cat 或CAT字元匹配.
* 表示字元的零到多次重複.例如:/UNI*X/ 和U N X、U N I X、U N I I X、U N I I I X等匹配.
表示字元的一次到多次重複.例如:/UNI X/ 和U N I X、U N I I X等匹配.
\{a,b\} 表示字元a次到b次之間的重複.例如:/ U N I \ { 1,3 \ } X 和U N I X、U N I I X和U N I I I X匹配(其中的“\”為轉義標記).
? 表示字元零次和一次的重複.例如:/UNI?X/ 和UNX 和UNIX匹配.
[] 表示字元的範圍.例如:/I[BDG]M/ 和IBM、IDM和IGM匹配.
[^] 表示不在[]中的字元.例如:/I[^DE]M/ 和所有的以I開始、M結束的包括三個字元的字元串匹配,除了IDM和IEM之外.
3)BEGIN和END
BEGIN模式用來指明gawk開始處理一個文件之前執行一些動作.BEGIN經常用來初始化數值,設置參數等.
END模式用來在文件處理完成後執行一些指令,一般用作總結或註釋.
BEGIN和END中所有要執行的指令都應該用花括弧括起來.BEGIN和END必須使用大寫.
例如:
BEGIN { print "Starting the process the file" }
注意:awk只能處理文本文件,如果不是文件的話,可以通過管道或是其他重定向方式將數據遞交給awk.
print動作的每一部分用逗號隔開.
[火星人 ] gawk詳解(二)已經有311次圍觀