2012-05-17 24 views
7

Tengo algunos datos que está siendo devuelto por una consulta SQL que se ve a continuación. Estoy tratando de separar las líneas basadas en un delimitador y enviarlo a la nueva línea. ¿Cómo puedo ello en Unix .. he intentado utilizar shell-scripting, pero no podía hacer a través ...División de líneas basadas en un delimitador en UNIX

ALB|1001|2012-04-15 ALB|1001|2012-04-14 ALB|1001|2012-04-16 ALB|1001|2012-04-17 


ALB|1001|2012-04-15 
ALB|1001|2012-04-14 
ALB|1001|2012-04-16 
ALB|1001|2012-04-17 
+0

¿Estaría abierto a una solución no basada en secuencias de comandos? Esto sería bastante trivial en Python, etc. Por ejemplo, 'for i in s.split(): print i' if's' contiene tu cadena – Levon

+0

Sí, ese espacio viene como parte de la salida ... Estoy intentando entrenar en UNIX ... – Teja

+0

mejor arreglar su separador de línea de salida en la herramienta SQL que está utilizando. Buena suerte. – shellter

Respuesta

18

Por ejemplo particular que, tr ' ' '\n' < file se debe trabajar;

echo "ALB|1001|2012-04-15 ALB|1001|2012-04-14 ALB|1001|2012-04-16 ALB|1001|2012-04-17" | tr ' ' '\n' 
+0

puede publicarlo por completo ... – Teja

+1

+1 por una solución simple y agradable – Levon

+0

Me encantó twalberg .. Es muy simple y fácil ... Gracias .. :) – Teja

8

xargs es una única y simple programa que puede usar para hacer esto, como en:

$ echo "ALB|1001|2012-04-15 ALB|1001|2012-04-14 ALB|1001|2012-04-16 ALB|1001|2012-04-17"|xargs -d' ' -n1 
ALB|1001|2012-04-15 
ALB|1001|2012-04-14 
ALB|1001|2012-04-16 
ALB|1001|2012-04-17 
+0

+1 estado usando 'xarg's durante años, nunca antes había mirado las opciones de línea de comandos, claramente un error. – Levon

+2

'-d' no es una opción para' xargs' en OS X. Solo pensé en agregar que ... – 2rs2ts

+0

'xargs' tiene un inconveniente (oculto) - usa'/bin/echo' cuando no hay programa se ha especificado ejecutar y, por lo tanto, se ejecuta con demasiada frecuencia, en cada elemento de entrada con penalizaciones de rendimiento notables – poige

Cuestiones relacionadas