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
下一篇 2017-09-09

相關推薦

  • LVS NAT模型

    LVS NAT NAT模式顧名思義就是對地址進行轉換 通過訪問前端外網的VIP調度到后端兩臺真實主機 拓撲圖如下                      &n…

    2017-05-15
  • Linux之文件管理及范例

    1、Linux上的文件管理命令   目錄管理類命令:mkdir,rmdir    mkdir [OPTION]… DIRECTORY…     -p: 自動按需創建父目錄;     -v: verbose,顯示…

    Linux干貨 2016-09-27
  • Linux基礎知識——SHELL之循環

    1、寫一個腳本,判斷當前系統用戶shell是否都為可登陸shell(即非/sbin/nologin),分別計算兩類用戶的個數(通過比較字符串實現) #!/bin/bash #       check the user could login&nbsp…

    Linux干貨 2016-12-13
  • 一些基礎命令的基本用法介紹

    節選一部分常用參數用法 基礎命令 tty 切換X Window或命令行模式 Ctrl+Alt+F1~F6  tty1~tty6文字界面 Ctrl+Alt+F7  圖形界面 startx 登錄圖形界面系統 date 日期 date +%Y/%m/%d  當前日期 date +%H:…

    Linux干貨 2016-10-31
  • 初識shell腳本編程

    shell腳本基礎 shell腳本是包含一些命令或聲明,并符合一定格式的文本文件 一般格式要求: 1.首行shebang機制 #!/bin/bash #!/bin/python #!/usr/bin/perl 2.注釋信息 以#開頭,可寫明腳本用途,作者,版本,時間等 3.腳本正文內容, 創建shell腳本 以bash為例 第一行定格#!/bin/bash …

    Linux干貨 2016-08-15
  • 海量數據處理算法—Bit-Map

    1. Bit Map算法簡介         來自于《編程珠璣》。所謂的Bit-map就是用一個bit位來標記某個元素對應的Value, 而Key即是該元素。由于采用了Bit為單位來存儲數據,因此在存儲空間方面,可以大大節省。 2、 Bit Map的基本思想       &nbs…

    Linux干貨 2015-11-10

評論列表(1條)

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

    求繼續更新?。?!

欧美性久久久久