Para selecionar palavras de pelo menos 4 caracteres encontrados pelo menos 5 vezes e não encontradas em / usr / share / dict / words nos arquivos PDF no diretório atual.
find . -name '*.pdf' -exec pdftotext {} - \; |
tr -cs '[:alpha:]' '[\n*]' |
tr '[:upper:]' '[:lower:]' |
grep -E '.{4}' |
sort |
uniq -c |
awk '$1 > 4 {print $2}' |
comm -23 - <(tr '[:upper:]' '[:lower:]' < /usr/share/dict/words|sort -u)
Você precisa de um shell com suporte para substituição de processo ( ksh
, zsh
ou bash
).
Se você for usar perl
de qualquer maneira, também poderá fazer a coisa toda em perl
:
find . -name '*.pdf' -exec pdftotext {} - \; |
perl '-Mopen ":locale"' -nle '
s/^\S+//;s/\S+$//;y/ \t/ /s;
next unless length > 40;
$w{lc$_}++ for /[[:alpha:]]{4,}/g;
END{open W,"</usr/share/dict/words";
while(<W>){chomp;delete $w{lc$_}};
print for grep {$w{$_}>4} keys %w}'