awk規定,對於文本文件,默認情況下,一條記錄對應一行,即記錄之間的默認分隔符是換行符;而一條記錄又可以分為多個字段,默認字段分隔符為空格。
輸入記錄分隔符變量:RS(record sign) 輸出記錄分隔符變量:ORS(output record sign) 字段分隔符變量:FS(field sign) 輸出字段分隔符變量:OFS(output field sign) 1.一條記錄占多行(多行記錄) 有些情況下:一條記錄跨越多行,記錄與記錄之間使用非換行符。這種情況下需要修改記錄分隔符變量RS,RS告訴awk當前記錄什麼時候結束。 例如: BEGIN { FS="\n" // 將字段分隔符設為換行符,一個字段占一行 print "hello',"there","jim"
BEGIN {
FS="\n"
RS=""
OFS="," // 將輸出字段分隔符設置為逗號
}
BEGIN {
FS="\n"
RS=""
OFS=","
ORS="\n\n" // 輸出間隔翻倍
}
XIAN
711711
CC
HANGZHOU
399229
MM
Shanghai
888912
[root@web1 awk]# awk 'BEGIN{FS="\n";RS="";OFS="\t"} {print $1,$2,$3}' a.md
huanxgin XIAN 711711 // 輸出分隔符指定為制表符
CC HANGZHOU 399229
MM Shanghai888912
[root@web1 awk]# awk 'BEGIN{FS="\n";RS="";ORS=""} { x=1; while(x<NF) { print $x "\t" ;x++} print $NF "\n"}' a.md //每個字段來一個制表符,三個字段後來一個換行。
huanxgin XIAN 711711
CC HANGZHOU 399229
MM Shanghai888912
print "hello',"there","jim"
BEGIN {
FS="\n"
RS=""
OFS="," // 將輸出字段分隔符設置為逗號
}
BEGIN {
FS="\n"
RS=""
OFS=","
ORS="\n\n" // 輸出間隔翻倍
}
XIAN
711711
CC
HANGZHOU
399229
MM
Shanghai
888912
[root@web1 awk]# awk 'BEGIN{FS="\n";RS="";OFS="\t"} {print $1,$2,$3}' a.md
huanxgin XIAN 711711 // 輸出分隔符指定為制表符
CC HANGZHOU 399229
MM Shanghai888912
[root@web1 awk]# awk 'BEGIN{FS="\n";RS="";ORS=""} { x=1; while(x<NF) { print $x "\t" ;x++} print $NF "\n"}' a.md //每個字段來一個制表符,三個字段後來一個換行。
huanxgin XIAN 711711
CC HANGZHOU 399229
MM Shanghai888912
Linux常用命令之awk http://www.linuxidc.com/Linux/2016-09/135046.htm
Linux系統之文本格式化工具awk http://www.linuxidc.com/Linux/2016-02/128150.htm
AWK簡介及使用實例 http://www.linuxidc.com/Linux/2013-12/93519.htm
Linux awk文本分析工具 http://www.linuxidc.com/Linux/2015-12/126217.htm
Linux文本處理工具之awk http://www.linuxidc.com/Linux/2015-01/111437.htm
如何在Linux中使用awk命令 http://www.linuxidc.com/Linux/2014-10/107542.htm
文本分析工具-awk http://www.linuxidc.com/Linux/2014-12/110939.htm
AWK入門基礎教程 http://www.linuxidc.com/Linux/2016-12/138138.htm
使用awk格式化輸出文本 http://www.linuxidc.com/Linux/2016-04/130193.htm