我具有在單獨的線的形式,其中每行具有CSV狀格式文本:提取可選字段值
SOME BUNCH OF TEXT, FIELD_A: 12, FIELD_B: 0.2321, FIELD_C: 12:10:08 2011/07/22, FIELD_D: 656
字段的順序始終是相同的,但某些字段可能不存在。可以有感興趣的領域之間的其他領域,例如比較線之上,我可以得到下面還有:
SOME BUNCH OF TEXT, FIELD_A: 12, NOT_INTERESTED: 235, FIELD_B: 0.2321, FIELD_C: 12:10:08 2011/07/22, FIELD_D: 656, FIELDS
作爲處理這段文字我想和指定我的領域清潔CSV文件的結果接二連三:
12,0.2321,12:10:08 2011/07/22,656
如果某些字段不存在那麼我想簡單的省略值(例如FIELD_B缺席):
12,,12:10:08 2011/07/22,656
我該怎麼做使用像sed,perl或awk這樣的命令? 我試圖提取單場perl -pe 's/^.*?(FIELD_A: (.*?),)?.*?$/\2/'
和失敗 - 正則簡單地忽略我的域,即使它提出
您的解決方案的偉大工程。事實上,我期待一些正則表達式作爲解決方案,但似乎正則表達式無法解決我的問題。所以我們需要使用腳本。 – 2012-01-13 11:21:06