使用unix命令编辑CSV列

时间:2018-04-12 00:16:10

标签: linux csv awk

我有一个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进行编辑,但似乎无法弄清楚如何用该命令替换第二列

1 个答案:

答案 0 :(得分:3)

$ awk '{sub(";[^,]+","")}1' file

或者,或许更好

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