awk 語法格式
awk {參數} 'pattern {action}' {filename}
常用參數:
-F #指定分隔符
-v var=varlue #用戶設定的變量
pattern(模式)常用有以下幾種格式:
/正則表達式/ #如/user/ ,/^user/
關係表達式 #如NR==1 || NR==2,其中NR是awk工具中的特定變量,是行號的意思
BEGIN,END 模塊 #其中BEGIN模塊是awk程序開始前的動作,BEGIN模塊後面跟動作模塊,END模塊是awk程序結束後的動作。
action (動作) 主要爲一個或多個命令,函數,表達式等 用;隔開。
用幾個例子幫助理解
awk -F : '/root/ {print $0}' /etc/passwd #打印出/etc/passwd 中包含root的行,$0指整個文件,$1是以分隔符隔開的第一個字段
awk -F '[:\t]' 'print {$1,$3}' #以:,製表符,空格爲分隔符,並打印出第一,三字段(多個分隔符用[]括起來)
ls -l filename|awk 'BEGIN {size=0;} {size=$5;} END {print "size is:",size}' #統計filname的大小
awk '{gsub("a","A");print}' filename #把filename中的a替換成A,打印出來