On Wed, 20 May 2015 14:25:21 +0000, Mauricio López wrote:
Una recomendación: no separes el tamaño del archivo con punto, mejor
con
coma, y luego usas split() para separar el nombre de la extensión.
split()
te mete los pedazos de la cadena que separaste en un array y te dice
la
cantidad de elementos que fueron a parar a ese array. Es una idea
En realidad utilizo el punto como separador simplemente para aprovechar
la propia funcionalidad de AWK de obtener el último campo mediante $NF
para así obtener la extensión del archivo a partir de su nombre.
No creo que en este caso split funcione, porque tanto los tamaños de
los archivos como las extensiones tienen una cantidad de caracteres
variable.
Y gracias por aclararme la estructura de evaluación de AWK, tenías
razón, bastó con ajustar las llaves e insertar un END:
#! /bin/sh
if [ $# -eq 0 ]; then
TARGETDIR=$(pwd)
elif [ $# -eq 1 ] && [ -d "$1" ]; then
TARGETDIR="${1}"
else
echo "El argumento debe ser un directorio (de no especificarse, se
utiliza el actual)."
exit -1
fi
find "${TARGETDIR}" -type f -printf "%s.%f\n" | \
awk -F "." '{if (NF>2) ext=$NF; else ext="otros";
tipo[ext]++; peso[ext]+=$1;} END {for (i in tipo)
printf("%s(%0.0f)\t%10.0f\n", i, tipo[i], peso[i])}' | \
sort -k2 -nr | tr '\t' ';' | column -ts ';'
unset TARGETDIR
exit
--
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que est� limpio.
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l