Eliminar saltos de linea en ficheros linux

Veamos el código necesario para poder eliminar los saltos de linea de un fichero linux. De un fichero con texto que contiene saltos de linea, crearemos otro fichero que tendrá el texto sin saltos y todo seguido.

Tutorial Linux

Imaginad que tenemos el siguiente texto en un fichero llamado fichero-entrada.txt :

Hola
esto está en la primera linea
esto está en la segunda linea
esto en la tercera

Como podéis ver, tenemos el texto en cuatro lineas, y aunque no lo veamos, al final de cada una de ellas, Linux pone lo que simboliza el final de linea: \n\t.

Pero lo que queremos, es tenerlo todo en una sola linea, eliminando todos los saltos de linea. Y eso grabarlo en otro fichero llamado fichero-salida.txt

Hola esto está en la primera linea esto está en la segunda linea esto en la tercera

En definitiva, lo que tenemos que hacer, es sustituir/eliminar todos los \n\t del fichero. De esta manera, tendremos el texto todo seguido. Para hacer esto, deberemos trabajar en consola con la siguiente orden:

tr -d "\n\r" < fichero-entrada.txt > fichero-salida.txt

Hay otras opciones, pero en Linux es una de las maneras más sencillas que tenemos para eliminar saltos de linea en ficheros linux.

Todos los ficheros de una carpeta

Hemos visto cómo hacerlo en un fichero. Veamos cómo hacerlo para todos los ficheros de una carpeta. Para ello, deberemos crear un script en la misma carpeta con el siguiente contenido:

html2txt.sh

#!/bin/bash
for mifichero in $(ls -C1) 
do
    tr -d "\n\r" < $mifichero > $mifichero.txt
done

Al script hay que darle permisos de ejecución:

chmod +x html2txt.sh

Y para ejecutarlo, vamos por consola a la carpeta y ejecutamos:

./html2txt.sh

Esto hará que se creen tantos txt como ficheros hayan, con el mismo nombre, pero sin los saltos de linea.

Si quieres ver más artículos como este, visitad nuestra sección de tutoriales de Linux. Verás cómo cambiar ficheros permisos en Linux o conocer Flatpak el gestor de paquetes Linux.


Más información

Deja una respuesta

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

*