Problema: Você tem zilhões de artigos (papers) em pdf mas quer saber se uma certa sequência de texto (palavra ou frase) está escrita neles. Por exemplo, suponhamos que a frase a ser pesquisada é "fitting"
Solução 1: via pdfgrep (mais recomendada)
No terminal de comandos, (trocando "richard" pelo seu nome do usuário), digite:
$ find ~ -name '*.pdf' -exec pdfgrep -H -i 'fitting' {} \;
Para indicar quantas ocorrências em cada pdf:
find ~ -name '*.pdf' -exec pdfgrep -c -H -i 'fitting' {} \; | awk -v FS=":" -v OFS="\t" '$2>0 { print $2, $1 }' | sort -hr
Para mostrar somente a primeira ocorrência no pdf:
$ find ~ -name '*.pdf' -exec pdfgrep -H -i -m 1 'fitting' {} \;
Solução 2: via pdftotext
Nota: pode apresentar mensagens de erro quando há problemas na conversão para texto
No terminal de comandos digite:
$ find ~ -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep -H --label="{}" --color "fitting"' \;
Um exemplo de resultado é exibido na figura seguinte:
Se você quiser mostrar somente a primeira ocorrência no arquivo pdf:
$ find ~/Downloads -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep -H -m 1 --label="{}" --color "fitting"' \;
Para exibir somente o número de vezes o padrão pesquisado aparece nos arquivos pdf:
find ~ -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep -o -H -c --label="{}" --color "plot"' \;
Obs: para instalar os pacotes necessários, em distribuição baseada no Debian (Debian, Ubuntui, Mint etc) use:
$ sudo apt-get install pdftotext pdfgrep
Comentários
Postar um comentário