Unidad 2. Versión compreta de numrep.sh
por Juan Chico, Jorge
—
Última modificación
02/05/2014 15:46
numrep.sh — text/x-sh, 1Kb
Contenido del Archivo
#!/bin/bash # # numrep.sh: cuenta palabras en un texto # # 2013-04-24 Jorge Juan <jjchico@gmail.com> # Este programa está en el dominio público. prog=`basename $0` # nombre del programa lines=10 # número predeterminado de palabras a listar order="-r" # orden predeterminado (de mayor a menor) while [[ "$1" =~ ^- ]]; do case "$1" in -h) cat << EOF $prog: muestra las palabras más (menos) repetidas en un texto. Uso: $prog [-h] [-r] [-n N] [<archivo>] -h: Muestra esta ayuda. -r: Orden inverso (de menor a mayor). -n N: Muestra las N palabras más repetidas (menos repetidas con '-r'). Si N=0, muestra todas las palabras. Sin la opción, muestra sólo 10 palabras. Si no se indica <archivo> se leerá de la entrada estándar. EOF exit 1 ;; -n) if [[ "$2" =~ [^0-9] ]]; then echo "$prog: el parámetro de '-n' debe ser un número" echo "Pruebe: '$prog -h' para ayuda." exit 1 else lines="$2" shift fi ;; -r) order="" ;; -*) echo "$prog: opción desconocida '$1'." echo "Pruebe: '$prog -h' para ayuda." exit 1 ;; esac shift done if [ "X$*" == "X" ]; then cat else cat "$@" fi | tr -sc A-Za-z '\012' | sort | uniq -c | sort -n $order | if [[ "$lines" == "0" ]]; then cat else head -"$lines" fi