Tengo un archivo con información de país, ciudad y estado, entre otros datos. El contenido del archivo se parece a esto: (solo se muestra la parte correspondiente a la pregunta)
Some lines (rows) of text
...
United States
Memphis, TN 38116-3252
...
More lines of text
...
United States
Austin, TX 78726
...
Lo que me gustaría hacer es agregar una nueva línea antes del código postal o después de TN (por ejemplo) y también reemplazar ',' con una nueva línea. Pero supongo que la segunda parte será más fácil.
Formato deseado:
Some lines (rows) of text
...
United States
Memphis
TN
38116-3252
...
More lines of text
...
United States
Austin
TX
78726
...
El objetivo final es importar los datos a una hoja de cálculo como:
Some info | Country | State | City | Etc.
abc | United..| Texas | Austi| zcx
Estoy abierto a cualquier cosa que funcione sed, awk, etc.
Respuesta1
Yo usaría sed
para esto:
sed -E 's/, /\n/;s/([A-Z]{2}) /\1\n/' States
Some lines (rows) of text
...
United States
Memphis
TN
38116-3252
...
More lines of text
...
United States
Austin
TX
78726
La primera expresión s/, /\n/
busca una coma seguida de un espacio y la reemplaza con una nueva línea.
La segunda expresión s/([A-Z]{2}) /\1\n/
busca dos letras mayúsculas seguidas de un espacio y las reemplaza con esas letras seguidas de una nueva línea.
sed --version
sed (GNU sed) 4.2.2