Pergunta

existe uma distância fácil de combinar campos em awk? Especificamente, eu tenho linhas como este:

1,2,some text
3,4,some text, but it has commas in it, annoyingly

Eu quero extrair os dois números como os dois primeiros campos, mas então eu quero que todo o texto (vírgulas e tudo) para ser o terceiro campo. Existe uma maneira de fazer isso?

O meu chamada básica awk foi assim:

awk -F\, '{print $1"|"$2"|"$3}' file.txt

O que funciona bem para a primeira linha, mas pára no vírgula no texto na segunda linha.

Foi útil?

Solução

Talvez:

awk '{for (i=0;i<2;i++) sub(",", "|", $0); print}' file.txt

Outras dicas

Você pode usar sed para fazê-lo.

cat file.txt | sed 's/\(.?*\),\(.?*\),/\1|\2|/'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top