linux awk命令的使用
阿新 • • 發佈:2019-05-05
特殊 int passwd pat ... 分析 文本處理 and tab ask 是一種文本處理工具 ,一個強大的文本分析工具
格式:
awk ‘/pattern/{command}‘ file1 file2 ... #行匹配語句awk‘ ‘只能用單引號
-F 指定分隔符 -f 調用腳本 -v 定義變量 ‘ ‘ 引用代碼塊 BEGIN 在對每一行進行處理之前,初始化代碼 // 匹配代碼塊,可以是字符串或正則表達式 ; 多條命令使用分號分隔 END 對每一行進行處理之後再執行的代碼塊,主要是進行最終計算或輸出 結尾摘要信息 { } 包含一條或多條命令
特殊符號:
$0 匹配整行
$1 每行的第一個字段
FS 輸入域分隔符,默認為一個空格
RS 輸入記錄分隔符
NF 當前記錄裏域個數
NR 到目前為止記錄數
OFS 輸出域分隔符
ORS 輸出記錄分隔符
\t 制表符
\n 換行符
== 等於全部相等
!= 不等於
例 awk ‘{print $0}‘ file 顯示整行
awk ‘{print $1,$3}‘ file 顯示匹配行的第一、三個域
awk ‘{print FNR,$0}‘ file file2 把兩個文件合起來顯示
統計/etc/fstab文件中每個文件系統類型出現的次數 awk ‘/^UUID/{fs[$3]++}END{for(i in fs){print i,fs[i]}}‘ /etc/fstab 統計/etc/fstab文件中每個單詞出現的次數 awk ‘{i=1;while(i<=NF){word[$i]++;i++}}END{for(num in word){print num,word[num]}}‘ /etc/fstab 統計出/etc/passwd文件中shell的種類和個數 awk -F: ‘{shell[$NF]++}END{for (i in shell){print i ,
shell[i]}}‘ /etc/passwd
linux awk命令的使用