awk簡介linux
awk是一個很是強大的命令 ,grep,awk,sed linux系統的三劍客。
正則表達式
知識點數組
awk的模式:1正則表達式做爲模式 2比較表達式做爲模式 3範圍模式 4特殊模式BEGIN和END。spa
awk的基本格式 (awk 【參數】 ‘條件’ 路徑)awk
例 awk ‘{print $5}’ xxxxx 輸出xxxxx文件的第五列變量
例 awk ‘$9 ~ /^200$/’ xxxxx 輸出xxxxx文件第九列以200開頭以200結尾的行 解釋 $9模式第九列 ~正則匹配操做符sed
例 awk ‘NR>=10$$NR<=20’ 文件 取出該文件大於等於10小於等於20的行 file
例 awk ‘NR==5,NR==10{print NR,$0}’ 文件名 解釋條件是從第5行到第10行 動做是顯示行號NR 和整行$0 遍歷
awk -F 「指定的分割符號」grep
awk -F 「 :」 ‘$5==「root」’ 文件名 找出該文件第五列是root的行 指定:爲分隔符
awk -F 「 :」 ‘$5~「^root$」’ 文件名 找出文件中第五列以root開頭結尾的行
awk特殊模式BEGIN模式與END模式
awk使用內置變量RS來存放輸入記錄分隔符,RS表示的是輸入的記錄分割符,這個值能夠經過BEGIN模塊從新定義修改
awk ‘BEGIN{RS=「/」}{print NR,$0}’ 文件
awk -F 「分隔符」 ‘BEGIN{模式}{動做}END’ 文件
開始模塊 用來告訴awk數據要如何讀
結束模塊 用來告訴awk要如何結束
. awk -F "[/]+" '{h[$2]++}END{for(i in h)print i,h[i]}' file
. 咱們最終須要輸出的是去重複之後的統計結果,因此得在END模塊裏進行輸出
. for(i in h)遍歷這個數組,i裏存的都是房間號
print i,h[i]:輸出每個房間號及其房間裏的內容(計數結果)