Pregunta
¿hay una manera fácil de combinar campos en awk? Específicamente, tengo líneas como esta:
1,2,some text
3,4,some text, but it has commas in it, annoyingly
Quiero extraer los dos números como los dos primeros campos, pero luego quiero que todo el texto (comas y todos) sea el tercer campo. ¿Hay alguna manera de hacer eso?
Mi llamada awk básica fue así:
awk -F\, '{print $1"|"$2"|"$3}' file.txt
Que funciona bien para la primera línea, pero se detiene en la coma en el texto de la segunda línea.
Solución
Tal vez:
awk '{for (i=0;i<2;i++) sub(",", "|", <*>); print}' file.txt
Otros consejos
Podrías usar sed para hacerlo.
cat file.txt | sed 's/\(.?*\),\(.?*\),/\1|\2|/'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow