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.
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