linux 關于 AWK 解析

關于awk

awk是一個報告生成器,他擁有強大的文本格式化的能力。

其實我么可以利用awk命令將一些文本整理成我們想要的樣子,比如把一些文本整理成“表”的樣子。然后打印出來,至于格式化能力會舉例出來,自然會明白。

awk是有Alfred Aho,Peter Weinberger好人Brian Kernighan 這三人創造的,awk由這三個人的姓氏的首個字母組成。

awk早期是在unix上實現的,所以,我們現在在linux中所使用的AWK其實是gawk,也就是GNU awk,簡稱gawk,awk還有一個版本,New awk,簡稱nawk,但是linux中最常用的還是gawk。

linux  關于 AWK 解析

awk其實是一門編程語言,它支持調節判斷,數組,循環等功能。所以,我們也可以把awk理解成一個腳本編譯解釋器。

grep,sed,awk被稱為linux中的“三劍客”。

我們總結一下這三個“劍客”的特長。

grep更適合單純的查找或匹配文本。

sed 更適合編輯匹配到的文本。

awk更適合格式化文本,對文本進行較復雜格式處理。

awk基礎

awk基本語法:awk[options] ‘Patter{Action}’ file

其中Action指的就是動作awk擅長文本格式化,并且將格式化以后的文本輸出,所以awk最常用的動作就是printprintf,

先舉個簡單的例子不用[options],也不知道pattern,直接用最簡單的action。如下:

linux  關于 AWK 解析

上圖我們只是使用了awk執行一個打印的動作,將testd文件內容打印出來。

在換個例子:

linux  關于 AWK 解析

上圖中沒有使用optionpattern,上圖中的awk‘{print$5}’ 表示輸出df的信息的第5列,$5表示將當前行按照分隔符分割后的第5列,不指定分隔符時,默認使用空格作為分隔符,你一定發現了上述信息用的空格不止有一個,而是連續多個空格,awk自動將連續的空格理解為一個分割符了。

awk是逐行處理的,逐行處理就是說,當awk處理一個文本時,會一行一行進行處理,處理完當前行,在處理下一行,awk默認以“換行符”為標記,識別每一行,也就是說,awk跟我們人類一樣,每次遇到“回車換行”,就認為是當前行的結束,新的一行的開始,awk會按照用戶指定的分割符去分割當前行,如果沒有指定分隔符,默認使用空格作為分隔符。

我們也可以一次輸出多列,使用逗號隔開要輸出的多個列,如下,一次性輸出第一列和第二列

linux  關于 AWK 解析

同理,也可以一次性輸出多個指定的列,如下

linux  關于 AWK 解析

我們發現第一行并沒有第5列,所以沒有輸出任何文本,而第二行有第5列,所以輸出了。

linux  關于 AWK 解析

未完待續!

原創文章,作者:eedsxb,如若轉載,請注明出處:http://www.www58058.com/86397

(2)
eedsxbeedsxb
上一篇 2017-09-09 20:03
下一篇 2017-09-09 20:39

相關推薦

  • C語言的謎題

    這幾天,本站推出了幾篇關于C語言的很多文章如下所示: 語言的歧義 [酷殼鏈接] [CSDN鏈接] 誰說C語言很簡單? [酷殼鏈接] [CSDN鏈接] 6個變態的C語言Hello World程序 [酷殼鏈接] [CSDN鏈接] 如何加密/弄亂C源代碼 [酷殼鏈接] [CSDN鏈接] C語言的謎題 [酷殼鏈接] …

    Linux干貨 2016-05-08
  • Linux文件系統

    Linux文件系統 根目錄下的文件 / ├── bin 存放用戶使用的基本命令(可執行程序,二進制文件) 不能單獨分區的 ├── boot 跟內核有關的文件 grub 內核和BootLoader ├── cgroup 用來資源限制資源隔離 docker 容器化 ├── dev device 設備文件 b block device 塊設備 硬盤或者CD-rom…

    Linux干貨 2017-04-01
  • 馬哥Linux學習之查詢篇(命令查詢和文件查詢)

        Linux運維工作一般都使用命令完成,在如此多的各種命令中,要想全部記住顯然是不太可能也是不必要的,另外,文件的查找在日常操作中也是必不可少的。下面我就總結一下Linux中如何查找命令以及文件。     命令的運行文件路徑查詢。這個查找的方法是同樣是使用命令,這個命令叫w…

    Linux干貨 2015-04-13
  • Hello World

    隨筆

    Linux干貨 2018-03-26
  • 幾種常見開源協議

    幾種常見的開源協議: 一、GPL詳解: 在自由軟件所使用的各種許可證之中,最為人們注意的也許是通用公開許可證(General Public License,簡稱GPL)。 GPL同其它的自由軟件許可證一樣,許可社會公眾享有:運行、復制軟件的自由,發行傳播軟件的自由,獲得軟件源碼的自由,改進軟件并將自己作出的改進版本向社會發行傳播的自由。 GPL還規定:只要這…

    Linux干貨 2016-07-12
  • Linux終端類型

    希望可以通過本文讓網友們對linux的終端類型有一個清晰的認識!

    Linux干貨 2016-10-14

評論列表(1條)

  • 6+1=7
    6+1=7 2017-11-16 12:33

    求繼續更新?。?!

欧美性久久久久