概述
AWK 是一種解釋執行的編程語言。
它很是的強大,被設計用來專門處理文本數據。
AWK 的名稱是由它們設計者的名字縮寫而來 —— Afred Aho, Peter Weinberger 與 Brian Kernighan。正則表達式
部分 AWK 的典型應用場景
AWK 能夠作很是多的工做。 下面只是其中的一小部分:編程
安裝
默認Linux系統中是安裝 AWK 的。
使用 which 命令能夠判斷你當前的系統上是否安裝了 AWK。segmentfault
若是沒有安裝,能夠使用 yum 包管理工具安裝:centos
yum install gawk
which 命令確認 AWK 已成安裝成功:緩存
which awk
若是獲得以下的結果,則說明你已經成功安裝 awk:安全
/bin/awk
實戰
帶着問題來學習,本次解決解決下這些問題。編程語言
測試文本 score.txt
Aaron Physics 87 Abel Maths 98 Rahul Chinese 90 Buck Biology 87 Byron English 85 Dave History 89 Enoch Chemistry 89 //打印出文件的內容。 [root@vagrant-centos65 awk]# awk '{print $0}' score.txt Aaron Physics 87 Abel Maths 98 Rahul Chinese 90 Buck Biology 87 Byron English 85 Dave History 89 Enoch Chemistry 89 //打印出第一列。 [root@vagrant-centos65 awk]# awk '{print $1}' score.txt Aaron Abel Rahul Buck Byron Dave Enoch //打印出最後一列。 [root@vagrant-centos65 awk]# awk '{print $NF}' score.txt 87 98 90 87 85 89 89 //打印出第一行。 [root@vagrant-centos65 awk]# awk 'NR==1{print $0}' score.txt Aaron Physics 87 //打印出最後一行。 [root@vagrant-centos65 awk]# awk 'END{print}' score.txt Enoch Chemistry 89 //打印出指定行的指定列。好比 第四行第二列 [root@vagrant-centos65 awk]# awk 'NR==4{print $2}' score.txt Biology //經過匹配模式串輸出列。 [root@vagrant-centos65 awk]# awk '/b/{print $0}' score.txt Abel Maths 98 //以任意順序輸出列。 [root@vagrant-centos65 awk]# awk '{print $2 "\t" $1}' score.txt Physics Aaron Maths Abel Chinese Rahul Biology Buck English Byron History Dave Chemistry Enoch //行開頭匹配。 [root@vagrant-centos65 awk]# awk '/^A/' score.txt Aaron Physics 87 Abel Maths 98 [root@vagrant-centos65 awk]# awk '/^B/' score.txt Buck Biology 87 Byron English 85 //行結束匹配。 [root@vagrant-centos65 awk]# awk '/89$/' score.txt Dave History 89 Enoch Chemistry 89