2014-11-25 23 views

回答

4

您可以使用此awk來處理此文件:

awk -F'[=(),]' -v OFS=, 'NR==1{for (i=2; i<NF; i+=2) printf "%s%s", $i, (i<NF-2)?OFS:ORS} 
       {for (i=3; i<=NF; i+=2) printf "%s%s", $i, (i<NF-2)?OFS:ORS}' input 
key1,key2,key3 
value1,value2,value3 
value4,value5,value6 

說明:

  • -F'[=(),]' - 讓字段分隔爲字符類的字符中的一個:[=(),]
  • -v OFS=, - 使輸出字段分隔符爲逗號
  • NR==1 - 執行該程序段的第一個記錄只
  • 'NR==1{...}將通過印刷字段2,4,6打印輸入文件的所有標題...
  • {for (i=3; i<=NF; i+=2) ...}將通過印刷字段3,5,7打印所有細胞...
+1

非常感謝!有效。也很好的解釋。 – 2014-11-25 10:38:00

+0

不客氣,很高興它解決了。 – anubhava 2014-11-25 10:38:54

相關問題