Usando awk
quando a coluna de destino está em posição fixa, por exemplo, $2
aqui.
awk -F\" '{gsub(",","", $2)}1' OFS=\" infile.txt
acima, o separador F ield nós definimos "
e com gsub(",","",$2)
estamos substituindo todas as vírgulas por string vazia no campo # 2 $2
. o 1
no final é o controle de impressão do awk e finalmente com OFS=\"
estamos dizendo ao awk para imprimir todos os campos com "
de novo.
No caso geral:
awk -F\" '{for (i=2;i<=NF;i+=2)gsub(",","",$i)}1' OFS=\" infile.txt
Dados de entrada:
engineer,doctor,"987,345,123",engineer
engineer,doctor,"123", "987,345,123",engineer
engineer,doctor,"987,345,123","123,123",engineer
"123,456,789",engineer,doctor,"987345123","123123",engineer
engineer,doctor,"987345123","123123",engineer,"123,456,78,9"
A saída seria:
engineer,doctor,"987345123",engineer
engineer,doctor,"123", "987345123",engineer
engineer,doctor,"987345123","123123",engineer
"123456789",engineer,doctor,"987345123","123123",engineer
engineer,doctor,"987345123","123123",engineer,"123456789"