AWK 初級篇

概述

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

推薦閱讀

clipboard.png

相關文章
相關標籤/搜索