仅从 csv 文件第 4 列中的数据中删除后缀 (bash)

仅从 csv 文件第 4 列中的数据中删除后缀 (bash)

我有一个 csv 文件,其中第 4 列包含后缀“_1”,我需要将其删除,而不会干扰 csv 中可能包含或不包含后缀“_1”的其他列。

CSV 文件输出:

    DOM,        PRO,        CONFIG,     CONFIG_CALL,    PATH
    xyz.com,    Num1,       Num1-V,     Asp_tent_1,     /bin/home
    abc.com,    Vel1,       Vell-V,     Asp_App,        /ai/rev/sand   
    123.com,    Xall,       X-V,        X_all_time_1,   /ai/test
    321.com,    Zall,       Z-V,        Z_all_1,        /bin/usr/home
    ...

想要的输出:

    DOM,        PRO,        CONFIG,     CONFIG_CALL,    PATH
    xyz.com,    Num1,       Num1-V      Asp_tent,       /bin/home
    abc.com,    Vel1,       Vell-V,     Asp_App,        /ai/rev/sand
    123.com,    Xall,       X-V,        X_all_time,     /ai/test
    321.com,    Zall,       Z-V,        Z_all,          /bin/usr/home

我尝试过一些 awk、grep、tr 尝试,但没有成功。

答案1

使用 GNU awk

awk -F, '{sub(/_1$/,"",$4)}1' OFS=, input

答案2

使用 SED:

sed -i 's/_1,/,  /g' file.csv

相关内容