我正在尝试逐行解析一个 csv 文件,它的格式是这样的:

"name","content1,with commas as you see", "content2, also may contain commas", "..."
...
...

我想获取特定列的内容,不带引号。例如:第一列和第三列。所以预期的内容应该是:
name  (if get column 1)
content2, also may contain commas   (if get column 3)

我尝试使用 awk 但它没有用。我也试过:
while IFS=, read col1 col2 col3 col4;
do
echo "got ${col1}|${col3}";
done < file

但是它包含引号“”,并且col3的内容是错误的,在每列中混合了逗号。我应该如何拆分每列中包含逗号的格式?

最佳答案

由于这些复杂性,如果您使用像 csvtool 这样的实际 CSV 解析器可能会容易得多:

$ csvtool col 3 - <<< '"name","content1,with commas as you see", "content2, also may contain commas", "..."'
"content2, also may contain commas"

关于bash - 如何在bash上解析csv文件中特定列的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17045227/

10-13 00:43