OFS 與 ORS
OFS(output field separator) ,輸出欄位分隔符,預設為空格。 ORS (output raw separator) ,輸出行分隔符,預設為回車。
cat OFS_ORS.text
ab|cde*fg|hij*kl|mno
指定輸入欄位分隔符 FS 為 | ,指定輸入行分隔符 RS 為 * ,如下
awk 'BEGIN{FS="|";RS="*"}{print $1, $2}' OFS_ORS.text
ab cde
fg hij
kl mno
指定輸出行分隔符為 @ ,如下
awk 'BEGIN{FS="|";RS="*";ORS="@"}{print $1, $2}' OFS_ORS.text
ab cde@fg hij@kl mno
可見欄位之間分隔符依然為空格,現將其指定為 # ,示例如下
awk 'BEGIN{FS="|";RS="*";ORS="@";OFS="#"}{print $1, $2}' OFS_ORS.text
ab#cde@fg#hij@kl#mno
注意,輸出欄位之間須有逗號,如果不加則不會正常顯示
awk 'BEGIN{FS="|";RS="*";ORS="@";OFS="#"}{print $1 $2}' OFS_ORS.text
abcde@fghij@klmno
FILENAME
表示當前處理的檔名,如果檔案有多行且沒有匹配規則限制,則每一行都將輸出檔名,如下
awk '{print FILENAME}' trump.txt
trump.txt
trump.txt
trump.txt
ARGC 與 ARGV
ARGC 表示引數個數, ARGV 則表示包含引數的陣列,示例如下
awk '{print ARGC}' trump.txt OFS_ORS.text
由於 trump.txt 有三行資料,OFS_ORS.txt 有一行資料,算上 awk 本身一共三個引數,分別是 awk 、 trump.txt 、 OFS_ORS.txt 。
3
3
3
3
ARGV 包含具體引數,如下
awk '{print ARGV[0],ARGV[1],ARGV[2]}' trump.txt OFS_ORS.text
awk trump.txt OFS_ORS.text
awk trump.txt OFS_ORS.text
awk trump.txt OFS_ORS.text
awk trump.txt OFS_ORS.text
本作品採用《CC 協議》,轉載必須註明作者和本文連結