O melhor dos dois mundos: Evita o uso do xargs
inútil e acelera as coisas, pois o +
aciona a invocação paralela.
find . -type f -exec file {} + | grep ASCII
Como escrever um script de shell que pesquisa o diretório atual do UNIX e retorna os nomes de todos os arquivos do tipo texto ASCII?
O melhor dos dois mundos: Evita o uso do xargs
inútil e acelera as coisas, pois o +
aciona a invocação paralela.
find . -type f -exec file {} + | grep ASCII
Exec 'arquivo' em todos os arquivos no directoy atual e, em seguida, grep para 'ASCII':
find . -maxdepth 1 -exec file {} \; | grep ASCII
find . -type f -print0 | xargs -0 file | grep ASCII
No CentOS 5, o ASCII pode significar muitas coisas, como "texto do programa ASCII C ++", "texto ASCII em inglês" e "texto ASCII", então você pode precisar reduzi-lo mais.
Se for apenas o diretório atual, não há necessidade de find
.
Apenas tente file * .* | fgrep ASCII
Suponha que você obtenha o nome do diretório como o argumento ($ 1), então,
ls $1 | while read name
do
# "file" returns file type
file $1/$name | grep -i 'ascii' &> /dev/null
# $? gives exit status of previous command
if [ $? -eq 0 ]; then
# $1/$name is your ascii file, process it here...
fi
done
Tags files shell-script mime-types