2014-11-25 19 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

相关问题