【问题标题】:CSV rows splitting and aligning in UNIX SCRIPTUNIX SCRIPT 中的 CSV 行拆分和对齐
【发布时间】:2013-01-10 16:53:32
【问题描述】:

是否可以像下面那样拆分和对齐 CSV 行?

ID Value
========
1  10
--------
2  20
--------
3  14
--------

请将以上内容视为 csv,无需关心第 2 列(值)。 我想拆分第一列(ID)并将结果保存/存储另一个文件。

输出应该是:1,2,3

【问题讨论】:

  • 欢迎来到 Stack Overflow。请通过发布您已应用于该问题的一些properly formatted 代码来改进您的问题。此外,请花时间分享您迄今为止为自行研究或解决问题所采取的步骤。

标签: shell unix csv


【解决方案1】:
awk '!/^[-=]/ && NR!=1{str=str","$1}END{print substr(str,2)}'

测试here

【讨论】:

    【解决方案2】:

    您的问题没有很好地说明,但对于您的特定示例,您可以这样做:

    { awk 'NR>2 && ! /^--/ { print $1 }' | tr \\n ,; echo; } < input > output
    

    或许:

    < input-file awk 'NR > 1 && NR%2 { print $1 }' | paste -d, -s > output
    

    【讨论】:

      猜你喜欢
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      相关资源
      最近更新 更多