funcion en bash que hace lo que dice el enunciado. nivel basico.
uso:
file_trans_dos2unix ficherodos.txt nuevoficherounix.txt
si no existe ficherodos.txt, la función devuelve un error 2
si ya existe nuevoficherounix.txt, la función devuelve un error 3.
este snippet debera funcionar incluso en las distros mas simples; la utilidad GNU "tr" (TRanslate) es muy basica.
tr tiene la habilidad, entre otras, de cargarse todas las apariciones de un determinado carácter o conjunto de caracteres dentro de un flujo de texto. En esta ocasion se va a cargar todas las apariciones del molesto "carriage return" existente al final de linea de los archivos de texto creados en SO's de la familia DOS.
function file_trans_dos2unix {
if [ -z "$2" ] # si no se pasan 2 parametros...
return 1 # error
fi
if [ ! -f "$1" ] # si no existe el fichero origen...
return 2 # la funcion devolvera otro error, llamemosle 2
fi
if [ -e "$2" ] # si hay un fichero o directorio llamado como el fichero destino...
return 3 # la funcion devolvera otro error, llamemosle 3
fi
# las lineas en un archivo DOS/WIN acaban en Carrage Return + Line Feed.
CR='\015' # Este es Carriage Return
# borrar todos los CR (parametro -d = delete) y reescribir el flujo de texto en la ruta indicada por $2.
tr -d $CR < "$1" > "$2"
}
@warcry
espero el snippet que te sirva para disminuir la probabilidad de que el usuario te escacharre el airlin usando diccionarios creados en Windows Hasefroch
salu2