awk學習筆記六-讀取命令行參數

原文: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 $0ARGV[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]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章