Kommandoradsverktyg som grep och ack-grep är bra för att söka vanliga textfiler för mönster som matchar ett angivet regelbundet uttryck. Men har du någonsin försökt använda dessa verktyg för att söka efter mönster i en PDF-fil? Tja, gör det inte! Du får inga resultat eftersom dessa verktyg inte kan läsa PDF-filer. de läser bara plaintext-filer.

pdfgrep, som namnet antyder, är ett litet kommandoradsverktyg som gör det möjligt att söka efter text i en PDF-fil utan att öppna filen. Det är galen snabb - snabbare än sökningen som tillhandahålls av praktiskt taget alla PDF-dokumentvisare. En stor skillnad mellan grep och pdfgrep är att pdfgrep fungerar på sidor, medan grep fungerar på linjer. Det skriver också en enda rad flera gånger om mer än en match finns på den linjen. Låt oss titta på hur exakt att använda verktyget.

Installation

För Ubuntu och andra Linux distros baserade på Ubuntu är det ganska enkelt:

 sudo apt install pdfgrep 

För andra distros, bara ge pdfgrep som inmatning för pakethanteraren, och det ska få det installerat. Du kan också kolla in projektets GitLab-sida, om du vill leka med koden.

Testkörningen

Nu när du har verktyget installerat, låt oss gå för en testkörning. pdfgrep-kommandot tar detta format:

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

OPTION är en lista över extra attribut för att ge kommandot som -i eller --ignore-case, vilket båda ignorerar skillnaden mellan det angivna regelbundna mönstret och en gång matchande det från filen.

PATTERN är bara ett utökat regelbundet uttryck.

FIL är bara namnet på filen, om det finns i samma arbetsmapp eller sökvägen till filen.

Jag sprang kommandot på Python 3.6 officiell dokumentation. Följande bild är resultatet.

De röda höjdpunkterna anger alla platser som ordet "kö" uppstod. Passerar -i som alternativ till kommandot ingår matcher av ordet "Queue". Kom ihåg att fallet spelar ingen roll när -i passeras som ett alternativ.

Extra

pdfgrep har ett stort antal intressanta alternativ att använda. Jag täcker dock bara några få här.

  • -c eller --count : detta undertrycker normal utmatning av matchningar. I stället för att visa den långa utmatningen av matcherna visas det bara ett värde som motsvarar hur många gånger ordet hittades i filen
  • -p eller --page-count : det här alternativet skriver ut sidnummer för träffar och antalet förekomster av mönstret på sidan
  • -m eller --max-count [number]: anger det maximala antalet matchningar. Det betyder att när antalet matchningar nås slutar kommandot att läsa filen.

Den fullständiga listan över stödda alternativ finns på man sidorna eller i pdfgrep online documenation. Glöm inte att pdfgrep kan söka flera filer samtidigt, om du arbetar med några stora filer. Standardmarkeringsmarkeringsfärgen kan ändras genom att ändra miljövariabel GREP_COLORS.

Slutsats

Nästa gång du tänker på att öppna en PDF-fil för att söka efter någonting. Tänk på att använda pdfgrep. Verktyget kommer till nytta och sparar tid.