AWK:
print
例子:給沒個/etc/passwd下的用戶都打招呼hello
答案:
awk '{print "hello:"$1}' /etc/passwd
內建變量
FS : 輸入分隔符
OFS: 輸出分隔符
RS : 行輸入分隔符
ORS: 行輸出分割符
NF : 字段數
NR : 行號數
FNR: 每個文件的行號數
ARGC: 參數個數
ARGV: 數組形式保存
printf
%c :顯示字符的ASCII碼
%d :顯示十進制整數
%e :科學計數法顯示
%f :顯示浮點數
%g :以科學計數法顯示浮點數
%s :顯示字符串
%v :無符號整數
%% :顯示%本身
修飾符:
%15s 行距離
-減號:左對齊
+加號:顯示數值正整號
PATTERN
BEGAIN:開始處理一次
END :結束后執行一次
控制語句和數組
if( ){ } else { } 語句
for( ; ; ) { } 語句
while( ) { } 語句
for( in ) { }語句
例子:顯示/etc/passwd文件中位于文件的第偶數行的用戶名;并顯示共有多少個這樣的用戶
答案:
awk -F: '{if (NR%2==0) {count++;print $1}} END {print "Total Users:"count" "}' /etc/passwd
例子:netstat -tan 打印tcp鏈接狀態的統計數
答案:
netstat -tan | awk '{if(NR>2)count[$NF]++}END{for(i in count)print i,count[i]}'
例子:統計/etc/fstab文件中每個文件系統類型出現的次數
答案:
awk '/^[^#]/{count[$3]++}END{for(i in count) print i,count[i]}' /etc/fstab
例子:統計/etc/fatab文件中每個單詞出現的次數
答案:
awk '{for(i=1;i<NF;i++){count[$i]++}}END{for(i in count) print i,count[i]}' /etc/fstab
原創文章,作者:z long,如若轉載,請注明出處:http://www.www58058.com/76717