Kommandolinjeprogrammer som grep og ack-grep er gode for å lete etter enkle tekstfiler for mønstre som samsvarer med et spesifikt regulært uttrykk. Men har du noen gang prøvd å bruke disse verktøyene for å søke etter mønstre i en PDF-fil? Vel, ikke! Du får ikke noe resultat da disse verktøyene ikke kan lese PDF-filer. de leser bare enkle tekstfiler.

pdfgrep, som navnet antyder, er et lite kommandolinjeverktøy som gjør det mulig å søke etter tekst i en PDF-fil uten å åpne filen. Det er vanvittig rask - raskere enn søket som tilbys av nesten alle PDF-dokumentvisere. Et stort skille mellom grep og pdfgrep er at pdfgrep opererer på sider, mens grep opererer på linjer. Det skriver også en enkelt linje flere ganger hvis mer enn en kamp er funnet på den linjen. La oss se på nøyaktig hvordan verktøyet skal brukes.

Installasjon

For Ubuntu og andre Linux distros basert på Ubuntu, er det ganske enkelt:

 sudo apt install pdfgrep 

For andre distroer, bare gi pdfgrep som input for pakkebehandling, og det skal få det installert. Du kan også sjekke ut prosjektets GitLab-side, hvis du vil leke med koden.

Testkjøringen

Nå som du har verktøyet installert, la oss gå til en prøvekjøring. pdfgrep-kommandoen tar dette formatet:

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

OPTION er en liste over ekstra attributter for å gi kommandoen som -i eller --ignore-case, som begge ignorerer --ignore-case mellom det faste mønsteret som er spesifisert og en gang det matcher det fra filen.

PATTERN er bare et utvidet regulært uttrykk.

FIL er bare navnet på filen, hvis den er i samme arbeidskatalog, eller banen til filen.

Jeg løp kommandoen på Python 3.6 offisiell dokumentasjon. Følgende bilde er resultatet.

De røde høydepunktene angir alle stedene som ordet "kø" ble oppstått. Passing -i som alternativ til kommandoen inkluderte kamper av ordet "Queue." Husk at saken ikke er viktig når -i er bestått som et alternativ.

extras

pdfgrep har ganske mange interessante alternativer å bruke. Jeg vil imidlertid dekke bare noen få her.

  • -c eller --count : dette undertrykker normal utgang av kamper. I stedet for å vise den lange utgangen av kampene, viser den bare en verdi som representerer antall ganger ordet ble oppdaget i filen
  • -p eller - --page-count : dette alternativet skriver ut sidetallene av kamper og antall forekomster av mønsteret på siden
  • -m eller --max-count [tall]: angir maksimalt antall treff. Det betyr at når antall kamper er nådd, slutter kommandoen å lese filen.

Den fullstendige listen over støttede alternativer finnes på mannssidene eller i pdfgrep-dokumentasjonen på nettet. Ikke glem at pdfgrep kan søke flere filer samtidig, dersom du jobber med noen massefiler. Standardkampens høydefarge kan endres ved å endre GREP_COLORS miljøvariabelen.

Konklusjon

Neste gang du tenker på å åpne en PDF-fil for å søke etter noe. tenk på å bruke pdfgrep. Verktøyet kommer til nytte og vil spare tid.