BASH csv解析使用IFS=,其中一些字段包含分隔符,即地址

BASH csv解析使用IFS=,其中一些字段包含分隔符,即地址,bash,parsing,csv,ifs,Bash,Parsing,Csv,Ifs,我正在尝试解析一个csv文件,该文件是使用IFS=、从MySQL数据库生成的,但有些字段包含一个,不应将其视为分隔符 例如,第一行是: 012345678,阿布克德夫,史密斯,约翰,1234主大街某处,州 我得到的回报是: 012345678,阿布克德夫,史密斯,约翰,1234主大街某处,州 我试图将每个字段分配给一个变量,但脚本挂起的逗号不是实际的字段分隔符。您可以在此处使用gnu awk来拆分字符串,如下所示: s='"012345678","abcdefgh","Smith, John",

我正在尝试解析一个csv文件,该文件是使用IFS=、从MySQL数据库生成的,但有些字段包含一个,不应将其视为分隔符

例如,第一行是: 012345678,阿布克德夫,史密斯,约翰,1234主大街某处,州

我得到的回报是: 012345678,阿布克德夫,史密斯,约翰,1234主大街某处,州


我试图将每个字段分配给一个变量,但脚本挂起的逗号不是实际的字段分隔符。

您可以在此处使用gnu awk来拆分字符串,如下所示:

s='"012345678","abcdefgh","Smith, John","1234 Main St. Somewhere, state"'
echo "$s" | gawk 'BEGIN{ FPAT="\"[^\"]*\"" } {for (i=1; i<=NF; i++) print $i}'
"012345678"
"abcdefgh"
"Smith, John"
"1234 Main St. Somewhere, state"