Sim, você pode usar find
para procurar arquivos não executáveis do tamanho correto e, em seguida, usar file
para verificar o ASCII. Algo como:
find . -type f -size 1033c ! -executable -exec file {} + | grep ASCII
A questão, no entanto, não é tão simples quanto parece. "Human legible" é um termo horrivelmente vago. Presumivelmente, você quer dizer texto. OK, mas que tipo de texto? Caráter latino ASCII somente? Unicode completo? Por exemplo, considere estes três arquivos:
$ cat file1
abcde
$ cat file2
αβγδε
$ cat file3
abcde
αβγδε
$ cat file4
#!/bin/sh
echo foo
Tudo isso é texto e legível para humanos. Agora, vamos ver o que o file
faz deles:
$ file *
file1: ASCII text
file2: UTF-8 Unicode text
file3: UTF-8 Unicode text
file4: POSIX shell script, ASCII text executable
Portanto, o comando find
acima encontrará apenas file1
(para o exemplo, vamos imaginar que esses arquivos tenham 1033 caracteres). Você poderia expandir o find
para procurar a string text
:
find . -type f -size 1033c ! -executable -exec file {} + | grep -w text
Com o -w
, grep
somente imprimirá linhas em que text
seja encontrado como uma palavra independente. Isso deve ser bem próximo do que você quer, mas não posso garantir que não haja nenhum outro tipo de arquivo cuja descrição possa incluir também a string text
.