Kommandolinjeværktøjer som grep og ack-grep er gode til at søge plain-text filer til mønstre, der matcher et angivet regulært udtryk. Men har du nogensinde prøvet at bruge disse værktøjer til at søge efter mønstre i en PDF-fil? Nå, gør det ikke! Du får ikke noget resultat, da disse værktøjer ikke kan læse PDF-filer; de læser kun plain-text filer.

pdfgrep, som navnet antyder, er et lille kommandolinjeværktøj, der gør det muligt at søge efter tekst i en PDF-fil uden at åbne filen. Det er sindssygt hurtigt - hurtigere end søgningen fra næsten alle PDF-dokumentere. En stor skelnen mellem grep og pdfgrep er, at pdfgrep opererer på sider, mens grep opererer på linjer. Det udskriver også en enkelt linje flere gange, hvis der findes mere end en kamp på den pågældende linje. Lad os se på, hvordan du skal bruge værktøjet.

Installation

For Ubuntu og andre Linux distros baseret på Ubuntu, er det ret simpelt:

 sudo apt install pdfgrep 

For andre distroer skal du bare levere pdfgrep som input til pdfgrep, og det skal få det installeret. Du kan også tjekke projektets GitLab-side, hvis du vil spille rundt med koden.

Testkørslen

Nu hvor du har værktøjet installeret, lad os gå til en testkørsel. pdfgrep kommando tager dette format:

 pdfgrep [OPTION ...] PATTERN [FIL ...] 

OPTION er en liste over ekstra attributter for at give kommandoen som -i eller --ignore-case, som begge ignorerer sondringen mellem det angivne regelmæssige mønster og den engang, der matcher det fra filen.

PATTERN er blot et udvidet regulært udtryk.

FIL er blot navnet på filen, hvis det er i samme arbejdskatalog eller stien til filen.

Jeg sprang kommandoen på Python 3.6 officiel dokumentation. Følgende billede er resultatet.

De røde højdepunkter angiver alle de steder, ordet "kø" stødte på. Passing -i som mulighed for kommandoen inkluderede matches af ordet "Queue." Husk, at sagen ikke betyder noget, når -i er bestået som en mulighed.

Ekstra

pdfgrep har en række interessante muligheder at bruge. Jeg dækker dog kun nogle få her.

  • -c eller --count : dette undertrykker den normale output af kampe. I stedet for at vise de lange resultater af kampene, vises det kun en værdi, der repræsenterer det antal gange ordet blev fundet i filen
  • -p eller - --page-count : Denne indstilling udskriver sidetal på kampe og antallet af forekomster af mønsteret på siden
  • -m eller --max-count [number]: angiver det maksimale antal matches. Det betyder, at når antallet af kampe er nået, stopper kommandoen med at læse filen.

Den fulde liste over understøttede valgmuligheder findes på manens sider eller i pdfgrep online documenation. Glem ikke, at pdfgrep kan søge flere filer på samme tid, hvis du arbejder med nogle massefiler. Standardkampens farvefarve kan ændres ved at ændre GREP_COLORS miljøvariabel.

Konklusion

Næste gang du tænker på at åbne en PDF-fil for at søge efter noget. tænk på at bruge pdfgrep. Værktøjet er praktisk, og du sparer tid.