Métodos alternativos para manejar finales de línea
Si bien el comando col es útil para filtrar saltos de línea, Linux ofrece otras herramientas diseñadas específicamente para convertir finales de línea entre diferentes formatos. Exploremos algunas de estas alternativas.
Usando los comandos dos2unix y unix2dos
Las utilidades dos2unix y unix2dos están diseñadas específicamente para convertir archivos de texto entre los formatos DOS/Windows y Unix.
Primero, instalemos estas utilidades:
sudo apt update
sudo apt install -y dos2unix
Ahora, creemos otro archivo de estilo Windows para probar:
cd ~/project/line_feeds
cat > config.ini << EOF
[General]^M
Username=admin^M
Password=12345^M
Debug=true^M
[Network]^M
Host=127.0.0.1^M
Port=8080^M
Timeout=30^M
EOF
Verifiquemos el archivo:
cat -v config.ini
Deberías ver los caracteres de retorno de carro (^M):
[General]^M
Username=admin^M
Password=12345^M
Debug=true^M
[Network]^M
Host=127.0.0.1^M
Port=8080^M
Timeout=30^M
Ahora, usemos dos2unix para convertir este archivo:
dos2unix config.ini
Este comando modifica el archivo directamente. Veamos el resultado:
cat -v config.ini
Los caracteres de retorno de carro deberían haber desaparecido:
[General]
Username=admin
Password=12345
Debug=true
[Network]
Host=127.0.0.1
Port=8080
Timeout=30
Usando el comando tr
Otro enfoque es usar el comando tr, que puede traducir o eliminar caracteres:
cd ~/project/line_feeds
cat > tr_example.txt << EOF
This is a Windows-style file^M
with carriage returns^M
at the end of each line.^M
EOF
Verifiquemos el archivo:
cat -v tr_example.txt
Verás:
This is a Windows-style file^M
with carriage returns^M
at the end of each line.^M
Ahora usa tr para eliminar los caracteres de retorno de carro:
tr -d '\r' < tr_example.txt > tr_cleaned.txt
Verifiquemos el resultado:
cat -v tr_cleaned.txt
La salida debería ser:
This is a Windows-style file
with carriage returns
at the end of each line.
Comparación de métodos
Creemos un resumen de los métodos que hemos aprendido:
col -b: Bueno para filtrar retornos de carro y otros caracteres especiales.
dos2unix: Diseñado específicamente para convertir archivos de texto de Windows/DOS al formato Unix.
tr -d '\r': Enfoque simple que utiliza traducción de caracteres.
Cada método tiene sus ventajas:
col es versátil y maneja varios caracteres especiales.
dos2unix está diseñado con el propósito de convertir finales de línea.
tr es una solución simple que está disponible en prácticamente todos los sistemas Unix.
Para la mayoría de las tareas de conversión de finales de línea, dos2unix es la herramienta más directa. Sin embargo, conocer todos estos métodos te da flexibilidad al trabajar con diferentes sistemas.