awk命令

awk 比較傾向于,將一行數(shù)據(jù)分成數(shù)個『欄位』來處理,默認(rèn)的『欄位的分隔符號為 "空白鍵" 或 "[tab]鍵" 』。較sed命令作用于一整行數(shù)據(jù)不同的是,awk 適合處理小型的數(shù)據(jù)數(shù)據(jù)處理。

語法

awk '條件類型1{動作1} 條件類型2{動作2} ...' filename

  • 如果不需要限制,則條件類型可為空。
  • 每一行拆分后,每個欄位都是有變量名稱的,那就是 1,2... 等

awk內(nèi)置變量

image.png

awk 的處理流程

  • 讀入第一行,并將第一行的數(shù)據(jù)按欄位拆分,填入 $0, $1, $2.... 等變量當(dāng)中;
  • 依據(jù) "條件類型" 的限制,判斷是否需要進行后面的 "動作";
  • 做完所有的動作與條件類型;
  • 若還有后續(xù)的『行』的數(shù)據(jù),則重復(fù)上面 1~3 的步驟,直到所有的數(shù)據(jù)都讀完為止

示例

  • awk -F ':' '{print $1}' /etc/passwd 按照:進行分割,取第一個欄位
  • awk 'BEGIN {FS=":"} {print $1 "\t" $3}' /etc/passwd 同上,另外一種寫法
  • awk -F ':' 'NR==1 {print $1}' /etc/passwd 按照:進行分割,如果目前處理的是第一行,則取第一個欄位
  • awk -F ':' 'NR==1 {print $1};$1=="admin" {printf $1 "\t" $3}' /etc/passwd
    多個動作時,利用分號或者回車鍵進行分割。

參考:http://cn.linux.vbird.org/linux_basic/0330regularex.php#awk

?著作權(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命令的基本使用 [root@shellscript ~]# head -n 3 /etc/passwd | ...
    古寒飛閱讀 1,105評論 0 2
  • linux awk命令詳解 來源:ggjucheng 鏈接:http://www.cnblogs.com/ggju...
    meng_philip123閱讀 942評論 0 1
  • 簡介 awk是一個強大的文本分析工具,相對于grep的查找,sed的編輯,awk在其對數(shù)據(jù)分析并生成報告時,顯得尤...
    ad085d162310閱讀 1,167評論 0 1
  • 本章主要學(xué)習(xí)內(nèi)容awk介紹 ?awk基本用法 ?awk變量 ?awk格式化 ?awk操作符 ?awk條件判斷 ?a...
    楠人幫閱讀 1,368評論 0 8
  • 一、簡介 awk命令是一種編程語言,用于在linux/unix下對文本和數(shù)據(jù)進行掃描和處理的工具,其數(shù)據(jù)來源可以為...
    小尛酒窩閱讀 8,793評論 0 0

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