Script para listar apenas arquivos do tipo texto ASCII no diretório atual?

4

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?

    
por Host Post 19.03.2011 / 03:50

5 respostas

12

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
    
por 19.03.2011 / 06:04
2

Exec 'arquivo' em todos os arquivos no directoy atual e, em seguida, grep para 'ASCII':

find . -maxdepth 1 -exec file {} \; | grep ASCII
    
por 19.03.2011 / 04:47
2

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.

    
por 19.03.2011 / 04:48
2

Se for apenas o diretório atual, não há necessidade de find .

Apenas tente file * .* | fgrep ASCII

    
por 26.04.2011 / 04:54
0

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
    
por 12.02.2013 / 05:56