使用awk提取指定的列包含双引号

时间:2018-09-21 16:34:39

标签: bash perl awk sed

我有一个sql转储文件,我想从中提取指定的列。我正在尝试使用awk做到这一点。

问题是某些字段包含双引号,所以我无法获得匹配结果。

括起来的字符是','

文件包含

joe','b,,o','fo','d,o','mo

命令

awk 'BEGIN { OFS="','"; FS="','" } { print $1,$2,$3,$4,$5 }'

请注意,此示例中的文件具有5列字段,但带有双引号。 预先感谢

带有\ t标签的预期结果

joe b,,o fo d,o mo

1 个答案:

答案 0 :(得分:1)

您可以使用此awk

str="joe','b,,o','fo','d,o','mo"

awk -v OFS='\t' -F "','" '{ print $1,$2,$3,$4,$5 }' <<< "$str"

joe    b,,o    fo    d,o    mo