原文:http://doc.lazyhack.net/awk.htm
讀取命令行上的參數
awk 'BEGIN{for (i=0;i<ARGC;i++)print ARGV[i]}' 1 2 3 4 5
輸出結果:
awk
1
2
3
4
5
說明:
ARGC:爲一整數,代表命令行上除選項-v –f及其對應參數外所有參數的數目
ARGV[]:爲一字符串數組:ARGV[0],ARGV[1],ARGV[2]…ARGV[ARGC-1]
如上例:ARGC=6
ARGV[0]=”awk”
ARGV[1]=”1”
ARGV[2]=”2”
……
ARGV[5]=”5”
awk 通過 ARGC 來判斷應開啓的數據文件個數.但使用者可改變 ARGC; 當 ARGC 之值被使用者設爲 1 時;awk將被矇騙,誤以爲命令行上並無數據文件文件名, 故不會以 ARGV[1], ARGV[2],..爲文件名來打開文件讀取數據; 但在程序中仍可通過 ARGV[1], ARGV[2],..來取得命令行上的數據.
例子:
awk 'BEGIN{ARGC=2} {print $0,ARGV[1],ARGV[2]}' emp.dat reg.dat
輸出結果:
A341 Dan 110 215 emp.dat reg.dat
P158 Max 130 209 emp.dat reg.dat
P148 John 125 220 emp.dat reg.dat
A123 Linda 95 210 emp.dat reg.da
說明:因爲ARGC=2所有awk只打開參數ARGV[1](emp.dat)對應的文件,將只會輸出emp.dat文件的內容,但是在awk依然可以使用參數ARGV[2]