2015-01-09 67 views
1

的變化$ 0力重建這是在這裏討論AWK - 爲什麼不輸出記錄

Multiline edit in awk

從答案繼上的問題和數據的跟蹤,我想出了以下解決方案

BEGIN {RS="\n-+\n"; FS="\n";OFS="\t"} 
    NF > 1 {sub(/^MV: /,""); print} 

但是,這並沒有工作,因爲指定的OFS沒有生效。當然,sub的默認行爲是改變$ 0,它似乎不會觸發記錄重建(或者任何啓動新OFS所必需的)。

如果我改變它的子命令

BEGIN {RS="\n-+\n"; FS="\n";OFS="\t"} 
    NF > 1 {sub(/^MV: /,"",$1); print} 

回答

1

這就像問到指定$ 1「爲什麼沒有指數($ 0.3)返回$ 0的子串開始字符3?」這確實工作。答案很簡單 - 因爲這不是語言定義的方式。

分配到一個字段(例如$ 1)將重建用OFS替換FS的記錄。

分配給$ 0使用FS將記錄重新分割成字段。

這就是全部。

相關問題