gawk程序是Unix中的原始awk程序的GNU版本,它提供了一種編程語言而不只是編輯器命令。在CentOS中awk命令實際上是gawk程序的鏈接文件名。
基本語法:
awk [options] ‘program’ flie1 file2 …
awk [options] ‘PATTERN{action}’ flie1 file2…
1、awk的輸出
print item1,item2…
要點:
(1)各項目之間使用逗號分隔,而輸出時則使用輸出分隔符分隔;
(2)輸出的各item可以是字符串數值、當前記錄的字段、變量或awk的表達式;數值會被隱式轉換為字符串后輸出;
(3)print后面item如果省略,相當于print $0,即輸出整個文本行;輸出空白,使用print “”;
選項:
-F 分隔符:指定輸入分隔符;
例如:
2、awk的變量
awk可以使用的變量有內置變量和自定義變量兩種。
2.1 內置變量
FS:輸入時指定字段分隔符,與-F選項作用類似;
RS:輸入時指定行的分隔符(換行符);
OFS:輸出時指定字段分隔符;
ORS:輸出時指定行分隔符;
上例中使用“—”做為行分隔符,每行的結束都被替換為“—”。
NF:每行中的字段個數;
NR:行數,所有文件一并計數;
上例中雖然有兩個文件但其行數是合并計算的。
FNR:各文件分別記錄行數;
ARGV:數組,用于保存命令本身和命令行參數;
數組下標從0開始計算,ARGV[0]保存awk命令本身,ARGV[1]保存表達式后面的條一個參數。
ARGC:保存awk命令中參數的個數;
FILENAME:awk所正在處理的當前文件的名稱。
2.2 自定義變量
(1) 可以在腳本中定義變量;
(2) 可以在命令行中定義變量。
注:變量名區分大小寫
格式如下所示:
原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/4445