Faça grep
fazer o trabalho de strings
. Se você tiver o grep do GNU, passe a opção -z
para torná-lo ler registros delimitados por nulo em vez de registros delimitados por nova linha. Isso também coincidirá no final do arquivo, mas isso deve estar ok na prática.
find . -maxdepth 1 -type f -size +1M -print0 |
xargs -0 grep -Eoz '[[:print:]]{3,}$'
Se você não tiver utilitários GNU, passe o arquivo através de tr
para trocar os bytes nulos por novas linhas. Enquanto você faz isso, crie tr
caracteres não imprimíveis.
find . -type d -prune -o -type f -size +1024k -exec sh -c '
for x; do
<"$x" tr \0\n \n\0 | tr -dsC "[:print:]" \n |
grep ...
done
' _ {} +