Autor Tema: [BASH] optimando un diccionario antes de empezar a tirar de él  (Leído 2305 veces)

0 Usuarios y 1 Visitante están viendo este tema.

alist3r

  • Visitante
vale la pena eliminar lineas duplicadas de un dccionario antes de procesarlo.
a saber cómo diantres han generado los diccionarios los usuarios o de dónde los han sacado...
con este snippet resolvemos esa ineficiencia potencial en un plisplas.
este snippet se apoya en la utilidad GNU sort que, como su nombre indica, ordena las lineas dentro de arhivos de texto.
pero pasándole el parámetro -u (unique), ademas de ordenarlo nos borrará las lineas duplicadas.
en el caso particular de desarrollar aplicaciones de testeo de diccionarios, nos interesa mas que nada por el borrado de duplicados, pero tampoco nos irá mal que, de paso, nos ordene las lineas para que quede mas curioso.

uso:
file_trans_sort_unique  origen.dic  destino.dic

Código: [Seleccionar]
function file_trans_sort_unique {
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
sort -u < "$1" > "$2"
}