无法回显双引号内列下的数据

问题描述 投票:0回答:1

我正在尝试打印 CSV 文件中的列。 CSV 文件如下:

Account,Data,Address,Name
A1101,100,"303,SCA,JDM",Ram
A1102,100,"303,SCA,JDM",Ram

我使用了下面的 Bash 代码来打印图案。

patterns="$(cat csv_file3.csv |
            tail -n +2 |
            sort -k 2 |
            cut -d , -f 1,3,4 |
            uniq |
            tr -d ' ')"

echo "$patterns"

当我在 Git-Bash 中执行时,打印的模式如下:

如您所见,仅打印了第三列的一部分。是否可以正确打印格式?以下是预期输出。

    Account,Address,Name
    A1101,"303,SCA,JDM",Ram
    A1102,"303,SCA,JDM",Ram
bash csv unix git-bash
1个回答
0
投票

尝试通过gawk解决它:

$ gawk -k 'NR>=2{printf ("%s,\"%s\",%s\n", $1,$3,$4);}'  csv_file3.csv
A1101,"303,SCA,JDM",Ram
A1102,"303,SCA,JDM",Ram

cut -d, 
将认为
"303
JDM"
是单个字段。

© www.soinside.com 2019 - 2024. All rights reserved.