Identificar qual a extensão

1. Identificar qual a extensão

Ede
ede_linux

(usa Ubuntu)

Enviado em 28/12/2017 - 03:06h

Olá,

Com este script consigo gerar um relatório do que está no interior de cada directorio:

find -type f -exec file -ib {} \; | awk '{count[$1]++}END{for(j in count) print j,"("count[j]" occurences)"}' | sort>>$log

algo como isto:

----------------- Initial Script ----------------------
Thu Dec 28 00:48:20 WET 2017
-------------------------------------------------------
application/octet-stream; (1 occurences)
inode/x-empty; (3 occurences)
regular (1 occurences)
text/plain; (22 occurences)
text/x-shellscript; (8 occurences)

Existe maneira de em cada linha indicar a extensão a que se refere?
Algo como isto:

----------------- Initial Script ----------------------
Thu Dec 28 00:48:20 WET 2017
-------------------------------------------------------
(???) - application/octet-stream; (1 occurences)
(???) - inode/x-empty; (3 occurences)
(???) - regular (1 occurences)
(txt) -text/plain; (22 occurences)
(sh) -text/x-shellscript; (8 occurences)
-------------------------------------------------------

Obrigado


  


2. Re: Identificar qual a extensão

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 28/12/2017 - 23:01h

Veja se isso ajuda:
#!/bin/bash

dir=$1
if [ "$#" -ne "1" ]; then
echo "Modo de usar: ./script.sh diretório"
exit 1
fi

IFSOLD=$IFS
IFS=$'\n'

for arq in $(find $dir -type f)
do
ext=$([[ "$arq" = *.* ]] && echo ".${arq##*.}" || echo '---')
type=$(file -ib "$arq" | awk -F\; '{print $1}')
echo "($ext) $type" >> log
done

IFS=$IFSOLD

logname=$(basename $dir)

sort log -o log
awk '{count[$0]++}END{for(j in count) print j,"("count[j]" occurences)"}' log | sort | column -t >$logname.log

rm log
cat $logname.log







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts