awk內置變量
awk有許多內置變量用來設置環境信息,可修改;下表是一些常用的內置變量及其含義:
——————————————————————————————————————————————
ARGC 命令行參數個數
ARGV 命令行參數排列
ENVIRON 支持隊列中系統環境變量的使用
FILENAME awk浏覽的文件名
FNR 浏覽文件的記錄數
FS 設置輸入域分隔符,等價於命令行-F選項
NF 浏覽記錄的域個數
NR 已讀的記錄數
OFS 輸出域分隔符
ORS 輸出記錄分隔符
RS 控制記錄分隔符
——————————————————————————————————————————————
記錄個數:
awk 'END {print NR}' grade.txt
5
打印域個數,行號,記錄,以及文件名
awk '{print NF,NR,$0} END {print FILENAME}' grade.txt
7 1 M.Tansley 05/99 48311 Green 8 40 44
7 2 J.Lulu 06/99 48317 green 9 24 26
7 3 P.Bunny 02/99 48 Yello 12 35 28
7 4 J.Troll 07/99 4842 Brown-3 12 26 26
7 5 L.Tansley 05/99 4712 Brown-2 12 30 28
grade.txt
若有數據,找出包含Brown的數據行:
awk '{if (NR > 0 && $4 ~/Brown/) print $0}' grade.txt
J.Troll 07/99 4842 Brown-3 12 26 26
L.Tansley 05/99 4712 Brown-2 12 30 28
NF強大的功能
echo $PWD
/usr/xxxx/ytcclb
取出當前目錄名:
echo $PWD | awk -F/ '{print $NF}'
ytcclb
取出文件名及後綴
echo "/usr/xxxx/ytcclb/cat_file.txt" | awk -F/ '{print $NF}'
cat_file.txt