¿Cómo puedo unir varias líneas en una línea, con un separador donde estaban los caracteres de la nueva línea, y evitar un separador final y, opcionalmente, ignorar las líneas vacías?Conciso y portátil "join" en la línea de comandos de Unix
Ejemplo. Considere un archivo de texto, foo.txt
, con tres líneas:
foo
bar
baz
La salida deseada es:
foo,bar,baz
El comando que estoy utilizando ahora:
tr '\n' ',' <foo.txt |sed 's/,$//g'
Lo ideal sería algo como este:
cat foo.txt |join ,
Cuál es:
- la manera más portátil, sucinta, legible.
- la forma más concisa usando herramientas Unix no estándar.
Por supuesto que podría escribir algo, o simplemente usar un alias. Pero estoy interesado en conocer las opciones.
posible duplicado de [Unir varias líneas en una con bash] (http://stackoverflow.com/questions/2764051/joining-multiple-lines-into-one-with-bash) –