Isso parece ser um bom uso para um script -exec
incorporado:
find . -name \*.png -exec sh -c 'printf '%s,%s\\n' "$(identify -format '%hx%w' "$1")" "$(stat -c %y,%s,%n "$1")";' bash {} \; > out.csv
A saída da amostra é:
32x32,2018-09-21 15:04:33.216773000 -0400,192,./favicon.png
20x20,2018-09-21 15:04:33.225771000 -0400,1202,./delete.png
Desmembrado por legibilidade, esse script é:
find . -name \*.png -exec sh -c
'printf '%s,%s\\n'
"$(identify -format '%hx%w' "$1")"
"$(stat -c %y,%s,%n "$1")";'
bash {} \; > out.csv
Observe a cotação extra para obter um único \n
em printf
.
Fora de find
, para obter essa saída para arquivos no diretório atual:
for f in ./*.png
do
printf '%s,%s\n' "$(identify -format '%hx%w' "$f")" "$(stat -c %y,%s,%n "$f")"
done
A saída da amostra é:
20x20,2018-09-21 15:04:33.225771000 -0400,1202,./delete.png
32x32,2018-09-21 15:04:33.216773000 -0400,192,./favicon.png
Você pode alterar as peças ou adicionar outras peças conforme necessário; para o terceiro comando, basta adicionar outro comando %s
e quoted.
Gerei uma saída do tipo CSV simplista, mas se seus nomes de arquivos puderem conter vírgulas, você deverá citar o nome do arquivo. Idem se você converter os tamanhos de arquivo de uma simples cadeia de bytes em uma com vírgulas nos milhares lugares.