awk是個很強大的檔案處理工具。以前都不怎麼用到他,這幾天準備系統的學習一下,并把整個學習的過程記錄下來,備忘及分享。其實真正刺激我學awk的原因是在百度百科裡看到它的一句廣告詞“這種程式設計及資料操作語言的最大功能取決于一個人所擁有的知識”,換句話說就是“隻有想不到,沒有做不到”,好吧,看看它都能幹些啥吧,于是我就跳進了這個坑。
awk基礎知識
在awk中,不管指令多麼複雜,其基本形式都是:
awk [-F re] [parameter...] ['prog'] [-f progfile][in_file...]
-F re:允許awk更改其字段分隔符。
parameter: 該參數幫助為不同的變量指派。
'prog': awk的程式語句段。這個語句段必須用單拓号:'和'括起,以防被shell解釋。這個程式語句段的标準形式為:
'pattern {action}' 其中pattern參數可以是egrep正規表達式中的任何一個,它可以使用文法/re/再加上一些樣式比對技巧構成。action參數總是被大括号包圍,它由一系統awk語句組成,各語句之間用";"分隔。awk解釋它們,并在pattern給定的樣式比對的記錄上執行其操作。與shell類似,你也可以使用“#”作為注釋符,它使“#”到行尾的内容成為注釋,在解釋執行時,它們将被忽略。你可以省略pattern和action之一,但不能兩者同時省略,當省略pattern時沒有樣式比對,表示對所有行(記錄)均執行操作,省略action時執行預設的操作——在标準輸出上顯示。
-f progfile:允許awk調用并執行progfile指定有程式檔案。progfile是一個文本檔案,他必須符合awk的文法。
in_file:awk的輸入檔案,awk允許對多個輸入檔案進行處理。值得注意的是awk不修改輸入檔案。如果未指定輸入檔案,awk将接受标準輸入,并将結果顯示在标準輸出上。awk支援輸入輸出重定向。
本文轉自 ustb80 51CTO部落格,原文連結:http://blog.51cto.com/ustb80/1031828,如需轉載請自行聯系原作者