Se você tem uma versão recente de gawk
, está com sorte. Há o recurso FPAT
, documentado aqui
awk 'BEGIN {
FPAT = "([^|]+)|(\"[^\"]+\")"
}
{
print "NF = ", NF
for (i = 1; i <= NF; i++) {
sub(/"$/, "", $i); sub(/^"/, "", $i);printf("$%d = %s\n", i, $i)
}
}' file
NF = 3
$1 = field1
$2 = field2
$3 = field3
NF = 3
$1 = field1
$2 = field2|field2
$3 = field3