如何忽略bash脚本正在读取的CSV文件中的逗号

时间:2017-06-13 13:26:47

标签: bash csv

我有一些字段可以使用逗号作为分隔符来分隔字段,但是某些值实际上包含逗号,例如“”California,CA“”这些值被引号括起来表示其中的字符应该被视为部分该字段,但我不知道如何解析它将其取为相同的值。如何忽略字符串之间的逗号(,)

1 个答案:

答案 0 :(得分:2)

如果您的FPAT支持awk,则使用awk的内置变量来定义字段的正则表达式而不是分隔符。 IT类似FS的补充,也是awk的内置变量。

示例:

echo 'hey there,ola,"Nice, command",ola' |awk -v FPAT='[^,]+|"[^"]+"' '{print $1}'
hey there
echo 'hey there,ola,"Nice, command",ola' |awk -v FPAT='[^,]+|"[^"]+"' '{print $2}'
ola
echo 'hey there,ola,"Nice, command",ola' |awk -v FPAT='[^,]+|"[^"]+"' '{print $3}'
"Nice, command"
echo 'hey there,ola,"Nice, command",ola' |awk -v FPAT='[^,]+|"[^"]+"' '{print $4}'
ola