Copyright © 2005-2024 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:
Si ya has usado la línea de comandos o shell de Linux por un tiempo, seguramente entonces, el comando date ya te es familiar, lo ....
En ambientes donde varios usuarios usan uno o más sistemas GNU/Linux, es necesario otorgar distintos permisos o privilegios para ....
El siguiente script te presenta la manera de colocar un reloj (hora y fecha) en la parte superior derecha de una terminal de texto....
Una de las dificultades con una base de datos MySQL grande y activa es la de realizar respaldos limpios sin tener que desconectar ....
Administración básica de redes. Conoce distintos métodos y herramientas para escanear, probar o buscar por puertos abiertos des....
Eventualmente, mientras más se aprende a usar la línea de comandos y a realizar shell scripts, en alguno de estos scripts necesi....
Como formatear disketes o floppies en Linux.....
Linux es un sistema multiusuario, por lo tanto, la tarea de añadir, modificar, eliminar y en general administrar usuarios se conv....
...quien resuelve los nombres de dominio a su correspondiente IP, sería el DNS del proveedor, pero si implementamos un DNS Cache,....
¿Has visto esa combinación de r,w,x,- cuando listas un directorio?, tienes cierta idea que son los permisos, pero ¿como se usan....