如何通过Linux剪切CSV文件,知道一行可能包含双引号,其中包含逗号,并且delimeter为逗号

kq4fsx7k  于 2023-10-13  发布在  Linux
关注(0)|答案(1)|浏览(133)

CSV文件包含以下数据:

"Name","Age","City"
"John, Doe",30,"New York"
"Alice","25","Los Angeles"
"Bob","28","Chicago"

所需列可以是任何随机值。用下面的Linux命令,当尝试获取列1时,得到的结果如下:

NL1402:~$ awk -F'","' '{print $1}' data.csv
"Name
"John, Doe",30,"New York"
"Alice
"Bob

我想要的输出是:

"Name"
"John, Doe"
"Alice"
"Bob"

当试图得到第3列时,得到了这样的结果:

awk -F'","' '{print $3}' srijan.csv
City"

Los Angeles"
Chicago"

但要求:

"City"
"New York"
"Los Angeles"
"Chicago"

需要帮助在Linux命令为上述削减csv文件知道一些属性可以有双引号与逗号里面和csv有一个delimeter逗号

axr492tv

axr492tv1#

如果你使用一个完整的CSV感知工具,如Miller,这很容易。运行

mlr -N --csv cut -f 1 input.csv

得到

Name
"John, Doe"
Alice
Bob

3(mlr -N --csv cut -f 3 input.csv)也是如此。
如果你想使用字段名,语法略有不同:

mlr --csv cut -f Name input.csv

相关问题