Linux: use find para encontrar arquivos de texto?

4

Existe uma maneira de especificar para find que eu quero apenas arquivos de texto (e não arquivos binários)? Grep tem uma opção para excluir arquivos binários, então achei que find provavelmente tem um recurso semelhante, mas não consegui encontrá-lo.

    
por Peltier 15.07.2011 / 11:43

2 respostas

6

Isso porque grep examina o conteúdo do arquivo.

find . -exec sh -c "file -b --mime-type {} | grep -q '^text/'" \; -print
    
por 15.07.2011 / 11:53
4

find pode localizar arquivos por seus metadados, mas não confere o conteúdo. No entanto, você pode acoplá-lo com file :

find .git -type f -exec file -iN0 {} + |
awk -F '
find .git -type f -exec file -iN0 {} + |
awk -F '%pre%' '$2 ~ /^: text\// {print $1}'
' '$2 ~ /^: text\// {print $1}'

(Você pode remover a parte | awk ... se também quiser informações mais detalhadas.)

    
por 15.07.2011 / 11:55