Eliminar los saltos de línea de un fichero o salida de un comando

Muchas veces los comandos nos devuelven el resultado en líneas separadas y no tienen opción de cambiar el separador, como es el caso de shuf.

Si queremos un listado de números del 0 al 5 ordenados aleatoriamente, podemos escribir:

shuf -i 0-5

Y nos devolverá el resultado en líneas separadas.

Si queremos transformar esas líneas en espacios en blanco, para que aparezcan los números en la misma línea pero separados por un espacio, podemos filtrar la salida con tr:

shuf -i 0-5 | tr '\n' ' '

Si quisiéramos los números seguidos y juntos, no nos valdría sustituir el salto de línea (\n) por el espacio en blanco, ya que nos daría error:

$ shuf -i 0-5 | tr '\n' ''
tr: si no se está truncando conjunto1, cadena2 debe ser no vacía

Pero podemos eliminar caracteres con tr -d:

shuf -i 0-5 | tr -d '\n'

Que sí nos devolvería los números del 0 al 5 ordenados aleatoriamente y todos juntos, sin separación de ningún tipo.

Eliminar los saltos de línea de un fichero

Del mismo modo, si queremos sustituir los saltos de línea de un fichero por espacios en blanco, escribiremos:

shuf fichero | tr '\n' ' '

Y si queremos eliminarlos, usaremos la opción -d:

shuf fichero | tr -d '\n'

 

2 comentarios en «Eliminar los saltos de línea de un fichero o salida de un comando»

Deja una respuesta

Tu dirección de correo electrónico no será publicada.