Aquí hay una solución con find
+awk
find . -maxdepth 1 -type f -printf '%TY-%Tm-%Td\n' | awk '{array[$0]+=1}END{ for(val in array) print val" "array[val] }'
Esencialmente, lo que sucede es que encontramos todos los archivos regulares e imprimimos su tiempo de modificación según lo especificado por el %T
formato, y luego se awk
hace cargo y cuenta cada línea utilizando matrices asociadas. la END{}
declaración utiliza el for
bucle para recorrer todos los elementos en la matriz asociada e imprimir el contenido de la clave + matriz [clave] (que es la fecha + recuento).
Es posible que desee utilizar sort
para organizar la salida, particularmente en sort -k 1
función de la columna 1 (que es la fecha), pero eso es opcional. También -maxdepth 1
buscará archivos solo en la carpeta actual . Si también desea encontrar archivos en subdirectorios, elimine -maxdepth 1
parte.
Salida de muestra
$ find . -maxdepth 1 -type f -printf '%TY-%Tm-%Td\n' | awk '{array[$0]+=1}END{ for(val in array) print val" "array[val] }'
2015-09-29 1
2016-04-06 2
2016-04-07 10
2016-04-08 2
2015-11-05 2
2016-04-22 2
2016-04-23 6
2016-04-24 1
2015-11-21 2
2015-11-22 2
109294
y109294