每天一個linux命令(10)AWK命令用法與舉例

一、AWK簡介

awk是行處理器: 相比較屏幕處理的優(yōu)點,在處理龐大文件時不會出現(xiàn)內(nèi)存溢出或是處理緩慢的問題,通常用來格式化文本信息
awk處理過程: 依次對每一行進行處理,然后輸出

二、常用命令選項

  • -F fs fs指定輸入分隔符,fs可以是字符串或正則表達式,如-F:
  • -v var=value 賦值一個用戶定義變量,將外部變量傳遞給awk
  • -f scripfile 從腳本文件中讀取awk命令
  • -m[fr] val 對val值設(shè)置內(nèi)在限制,-mf選項限制分配給val的最大塊數(shù)目;-mr選項限制記錄的最大數(shù)目。這兩個功能是Bell實驗室版awk的擴展功能,在標(biāo)準(zhǔn)awk中不適用。

三、使用

  • awk 按照默認的空格或者tab分割
  • 變量NF表示當(dāng)前行有多少個字段,因此$NF就代表最后一個字段。
  • $(NF-1)代表倒數(shù)第二個字段。
#按照默認的空格或者tab分割
Cat -n a.log|awk ‘{print $1}’  

#按照自定義的字符分割,使用-F 后面單引號里面寫入自定義的內(nèi)容
Cat -n a.log|awk  -F ‘:’  ‘{print $1}’ 

#增加開始結(jié)束行的控制
Cat -n a.log|awk ‘BEGIN{print “開始”} {if(“”!=$1)print$2} END{print “結(jié)束”}’

#統(tǒng)計文件中的行數(shù)
awk 'END{ print NR }' filename


awk內(nèi)置變量

  • ARGC 命令行參數(shù)個數(shù)
  • ARGV 命令行參數(shù)排列
  • ENVIRON 支持隊列中系統(tǒng)環(huán)境變量的使用
  • FILENAME awk瀏覽的文件名
  • FNR 瀏覽文件的記錄數(shù)
  • FS 設(shè)置輸入域分隔符,等價于命令行 -F選項
  • NF 瀏覽記錄的域的個數(shù)
  • NR 已讀的記錄數(shù)
  • OFS 輸出域分隔符
  • ORS 輸出記錄分隔符
  • RS 控制記錄分隔符
#自定義變量 統(tǒng)計count
awk 'BEGIN {count=0;print "[start]user count is ", count} {count=count+1;print $0;} END{print "[end]user count is ", count}' /etc/passwd

#統(tǒng)計某個文件夾下的文件占用的字節(jié)數(shù)
ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}’

#如果以M為單位顯示:
ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size/1024/1024,"M"}' 

#統(tǒng)計某個文件夾下的文件占用的字節(jié)數(shù),過濾4096大小的文件(一般都是文件夾):
ls -l |awk 'BEGIN {size=0;print "[start]size is ", size} {if($5!=4096){size=size+$5;}} END{print "[end]size is ", size/1024/1024,"M"}' 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • awk介紹awk變量printf命令:實現(xiàn)格式化輸出操作符awk patternawk actionawk數(shù)組aw...
    哈嘍別樣閱讀 1,743評論 0 4
  • 一. AWK 說明 awk的處理文本和數(shù)據(jù)的方式:它逐行掃描文件,從第一行到最后一行,尋找匹配的特定模式的行,并...
    西華子閱讀 1,053評論 0 4
  • awk:報告生成器,格式化文本輸出 內(nèi)容: awk介紹 awk基本用法 awk變量 awk格式化 awk操作符 a...
    BossHuang閱讀 1,564評論 0 9
  • 報告生成器,格式化文本輸出,常用選項: -F:指明輸入時用到的字段分隔符 -v var=value:自定義變量 介...
    毛利卷卷發(fā)閱讀 649評論 0 1
  • 本章主要學(xué)習(xí)內(nèi)容awk介紹 ?awk基本用法 ?awk變量 ?awk格式化 ?awk操作符 ?awk條件判斷 ?a...
    楠人幫閱讀 1,377評論 0 8

友情鏈接更多精彩內(nèi)容