1. 程式人生 > >linux awk命令的使用

linux awk命令的使用

特殊 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命令的使用