Copyright © 2005-2025 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.
Cuando tu creas un documento de texto en MSDOS/Windows (como por ejemplo en notepad.exe), Windows añade al final de cada línea un retorno de carro CR (carriage return) y un salto de línea LF (line feed). Y después, digamos que creaste un shell script o un programa en C, te llevas ese documento a Linux o Unix, pues no va a funcionar ya que el formato Linux/Unix es solo un LF al final de cada línea. El típico error que resulta al tratar de ejecutarlo es el siguiente:
bash: ./programa.txt: /bin/bash^M: bad interpreter: No existe el fichero o el directorio
Donde se lee: "/bin/bash^M", es la parte que nos indica que hay tanto CRs como LFs al final
de cada línea. Claro podrías abrir el documento en vi
o cualquier
editor de Linux y eliminarlas manualmente, pero mejor te presento a continuación 5 tips
para deshacerte de esas molestas '^M'.
vi
Con vi
or vim
estando en modo de última línea ':', introduce lo siguiente
:1,$ s/{ctrl-V}{ctrl-M}// :1,$ s/^M//
Esto es, desde la primera línea hasta la última '$' sustituye 's' ^M por nada. Y listo. (Puedes consultar la guía vi para entender más sobre esto.)
sed
Con sed
se trabaja de una manera similar a la anterior, pero
sed
trabaja en una base de línea por línea, asi que buscamos el último
caracter de cada línea y lo sustituimos por nada:
$> sed -e 's/.$//' dos.txt > linux.txt
La opción 'e' indica que continua una expresión, la 's' substituye lo que este al final de la línea '$', y lo reemplaza con nada '//'. 'dos.txt' es el archivo original y la salida del comando, esto es, la eliminación de los caracteres indeseables se redirecciona '>' al nuevo archivo 'linux.txt' ya con el formato apropiado.
dos2unix
Este es el mejor y más simple, el comando dos2unix
convierte archivos de,
mmmm, bueno simple no, de dos a unix/linux.
$> dos2unix archivo.txt
El archvio queda con el mismo nombre pero ya con el formato apropiado. Simple y sencillo. La mejor opción para este trabajo.
Seamos realistas, la mayoría de la gente, enorme mayoría usan Windows, algunos más, otros (me incluyo afortunadamente :) mucho menos. Pero lo usamos, bueno, si es el caso, no uses notepad o word, bájate mejor este poderoso editor multilenguaje, que te permitira hacer tus shell scripts, javascript, PHP, html, C, etc. y guardarlo en formato Linux/Unix, listo para ejecutarse como si lo hubieras escrito directo en Linux. Pruébalo, muy recomendable.
El quinto y último tip: NO USES PROGRAMAS BASADOS EN WINDOWS PARA ESCRIBIR ARCHIVOS QUE VAS A EJECUTAR EN LINUX.
Si encuentras útil la información que proveé LinuxTotal, considera realizar un donativo que estimule a seguir proporcionando contenido de calidad y utilidad. Gracias.
Dona a través de paypal::
O a través de bitcoins:
Hay ocasiones que los usuarios insisten en poner contraseñas muy débiles de 5 o 6 caracteres a lo más. Y el argumento que dan e....
mysqldump es una utilieria cliente de MySQL que te permite respaldar bases de datos. Aprende por ejemplos como utilizarlo. Puedes....
EL espacio disponible en disco se determina con este comando built-in del sistema operativo Linux, df.....
Ya son varios los lectores que me preguntan que CMS (content management system) utilizo para este sitio. Ejemplos de CMS son mambo....
¿Olvidaste o perdiste la contraseña del usuario 'root' de MySQL?, no hay problema, solo sigue estás sencillas instrucciones y p....
El siguiente es un script muy básico de iptables que puedes usar para proteger un solo equipo conectado a Internet a través de u....
En el artículo de LinuxTotal.com.mx sobre permisos se explica lo que es un archivo con permisos SUID o SGID, pueden ser potencial....
Hay ocasiones en que se te ofrece hacer cálculos matemáticos o aritméticos y no estás en el ambiente gráfico para abrir una c....
Sistemas Linux con gran cantidad de usuarios, como servidores de correo, servidores samba, etc., tarde o temprano tienen el proble....
El editor en línea (stream editor) sed es un editor de texto en línea que realiza operaciones de edición sobre datos provenient....