linux awk命令的使用

ask 是一種文本處理工具 ,一個強大的文本分析工具正則表達式

格式:
awk '/pattern/{command}' file1 file2 ... #行匹配語句awk' '只能用單引號shell

-F          指定分隔符
         -f           調用腳本
         -v          定義變量
         ' '           引用代碼塊
         BEGIN  在對每一行進行處理以前,初始化代碼
         //           匹配代碼塊,能夠是字符串或正則表達式
         ;         多條命令使用分號分隔
         END     對每一行進行處理以後再執行的代碼塊,主要是進行最終計算或輸出                    結尾摘要信息
         { }         包含一條或多條命令

特殊符號:
$0 匹配整行
$1 每行的第一個字段
FS 輸入域分隔符,默認爲一個空格
RS 輸入記錄分隔符
NF 當前記錄裏域個數
NR 到目前爲止記錄數
OFS 輸出域分隔符
ORS 輸出記錄分隔符
\t 製表符
\n 換行符
== 等於所有相等
!= 不等於ide

例 awk '{print $0}' file 顯示整行
awk '{print $1,$3}' file 顯示匹配行的第1、三個域
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/passwdcode

相關文章
相關標籤/搜索