學習地址:http://man.linuxde.net/awk#awk的工作原理
awk
選項參數說明:
-F fs or --field-separator fs 指定輸入文件折分隔符,fs是一個字符串或者是一個正則表達式,如-F:。 -v var=value or --asign var=value 賦值一個用戶定義變量。 -f scripfile or --file scriptfile 從腳本文件中讀取awk命令。 -mf nnn and -mr nnn 對nnn值設置內在限制,-mf選項限制分配給nnn的最大塊數目;-mr選項限制記錄的最大數目。這兩個功能是Bell實驗室版awk的擴展功能,在標准awk中不適用。 -W compact or --compat, -W traditional or --traditional 在兼容模式下運行awk。所以gawk的行為和標准的awk完全一樣,所有的awk擴展都被忽略。 -W copyleft or --copyleft, -W copyright or --copyright 打印簡短的版權信息。 -W help or --help, -W usage or --usage 打印全部awk選項和每個選項的簡短說明。 -W lint or --lint 打印不能向傳統unix平台移植的結構的警告。 -W lint-old or --lint-old 打印關於不能向傳統unix平台移植的結構的警告。 -W posix 打開兼容模式。但有以下限制,不識別:/x、函數關鍵字、func、換碼序列以及當fs是一個空格時,將新行作為一個域分隔符;操作符**和**=不能代替^和^=;fflush無效。 -W re-interval or --re-inerval 允許間隔正則表達式的使用,參考(grep中的Posix字符類),如括號表達式[[:alpha:]]。 -W source program-text or --source program-text 使用program-text作為源代碼,可與-f命令混用。 -W version or --version 打印bug報告信息的版本。
舉例:
netstat -nat | grep "10.152.85.236:22" |awk '{print $5}'|awk -F: '{print $1}' |sort|uniq -c|sort -nr|head -20
語法解釋:
awk' begin{commends} {commends} end{commends}' #awk的基本語法,這三個模塊不是必須的,都沒有的話,等同於“{print}”’
awk -F: #按冒號分割
'{print $5}' #打印第5個字段
sort
[root@www ~]# sort [-fbMnrtuk] [file or stdin] 選項與參數:
-f :忽略大小寫的差異,例如 A 與 a 視為編碼相同; -b :忽略最前面的空格符部分; -M :以月份的名字來排序,例如 JAN, DEC 等等的排序方法; -n :使用『純數字』進行排序(默認是以文字型態來排序的); -r :反向排序; -u :就是 uniq ,相同的數據中,僅出現一行代表; -t :分隔符,默認是用 [tab] 鍵來分隔; -k :以那個區間 (field) 來進行排序的意思
sort #排序 sort -nr #按照數字,反向排序
uniq
uniq #去重,只能去相鄰的重復,所以跟sort搭配使用
uniq -c #刪除重復行的同時在行首位置輸出該行重復的次數
head
命令參數:
-q 隱藏文件名 -v 顯示文件名 -c<字節> 顯示字節數 -n<行數> 顯示的行數
head -n -20 #顯示文件的前20行
head -20 #也是顯示文件的前20行
wc
統計文件里面有多少單詞,多少行,多少字符。
wc語法
[root@www ~]# wc [-lwm] 選項與參數: -l :僅列出行; -w :僅列出多少字(英文單字); -m :多少字符;
