假設我有一個文本文件,其中包含以下格式的記錄,其中FS
通常是逗號,而RS
通常是換行符。是否可以在awk中處理包含換行符的字段?
但是,此規則的例外是,如果某個字段位於引號內,則應將換行符和逗號視爲該字段的一部分。
"This field contains
line breaks and is
quoted but it
should be treated as a
single field",1,2,3,"another field"
如何使用awk來正確地分析這樣的文件,在那裏我仍然可以訪問$1,$2...
,因爲我通常會,但與場上面的解釋呢?
我已經看過this wiki page,但在那裏提出的解決方案並沒有解決換行問題。
這可能是可能的,但它會非常脆弱。 awk與大多數unix工具一樣,被設計用來處理數據(不格式化),一次一行。打破與你的工具集「契約」導致整個世界的痛苦。當你需要引用$ 1等時,我真的不知道提供任何類型的黑客。我會很高興被證明是錯誤的;-)前置和後置過濾器使用類似於&#*^@的東西來平整記錄,因爲替換\ n是唯一想到的事情。祝你好運。 – shellter
這不像看起來那麼微不足道...... awk是唯一的選擇嗎? –
不,我可以用Python編寫它,但對於這個問題,它似乎是awk的分隔符問題,而不是一些更基本的限制,所以我想嘗試使它在awk中工作。 – merlin2011