【问题标题】:Edit CSV column with unix command使用 unix 命令编辑 CSV 列
【发布时间】:2023-03-26 01:02:01
【问题描述】:

我有一个结构如下的 CSV 表(为了清楚起见,我对齐了列):

AAAA, BBBB,                CCCC, DDDD
EEEE, FFFF;1111,           GGGG, HHHH
IIII, JJJJ;2222;3333;4444, KKKK, LLLL

在第二列中,我想删除第一次出现分号后的所有内容,结果是:

AAAA, BBBB, CCCC, DDDD
EEEE, FFFF, GGGG, HHHH
IIII, JJJJ, KKKK, LLLL

我尝试了受hereherehere 启发的各种 awk 命令,但还是不太明白。

我知道我可以选择第二列并通过 awk -F, '{print $2}' file | cut -d ';' -f 1 对其进行编辑,但似乎无法弄清楚如何用该命令替换第二列

【问题讨论】:

    标签: linux csv awk


    【解决方案1】:
    $ awk '{sub(";[^,]+","")}1' file
    

    或者,也许更好

    $ sed -E 's/;[^,]+//' file
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 2016-05-15
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      相关资源
      最近更新 更多