Τα βοηθητικά προγράμματα γραμμής εντολών, όπως grep και ack-grep, είναι ιδανικά για την αναζήτηση αρχείων απλού κειμένου για μοτίβα που ταιριάζουν με μια καθορισμένη κανονική έκφραση. Αλλά έχετε δοκιμάσει ποτέ να χρησιμοποιήσετε αυτά τα βοηθητικά προγράμματα για να αναζητήσετε μοτίβα σε ένα αρχείο PDF; Λοιπόν, μην το κάνετε! Δεν θα λάβετε κανένα αποτέλεσμα, καθώς αυτά τα εργαλεία δεν μπορούν να διαβάσουν αρχεία PDF. διαβάζουν μόνο αρχεία απλού κειμένου.

Το pdfgrep, όπως υποδηλώνει το όνομα, είναι ένα μικρό εργαλείο γραμμής εντολών που επιτρέπει την αναζήτηση κειμένου σε ένα αρχείο PDF χωρίς να ανοίξει το αρχείο. Είναι απίστευτα γρήγορη - ταχύτερη από την αναζήτηση που παρέχεται από σχεδόν όλους τους θεατές εγγράφων PDF. Μια μεγάλη διάκριση μεταξύ grep και pdfgrep είναι ότι το pdfgrep λειτουργεί σε σελίδες, ενώ το grep λειτουργεί σε γραμμές. Εκτυπώνει επίσης μία μόνο γραμμή πολλές φορές αν υπάρχουν περισσότερες από μία αντιστοιχίες στη γραμμή αυτή. Ας δούμε πώς ακριβώς να χρησιμοποιήσετε το εργαλείο.

Εγκατάσταση

Για το Ubuntu και άλλες διανομές Linux που βασίζονται στο Ubuntu, είναι αρκετά απλό:

 sudo apt εγκατάσταση pdfgrep 

Για άλλες διανομές, απλά δώστε pdfgrep ως είσοδο για τον διαχειριστή πακέτων και αυτό θα πρέπει να το εγκαταστήσετε. Μπορείτε επίσης να δείτε τη σελίδα GitLab του έργου, σε περίπτωση που θέλετε να παίξετε με τον κώδικα.

Η δοκιμαστική λειτουργία

Τώρα που έχετε εγκαταστήσει το εργαλείο, ας πάμε για δοκιμαστική λειτουργία. Η εντολή pdfgrep παίρνει αυτή τη μορφή:

 pdfgrep [ΕΠΙΛΟΓΗ ...] ΜΟΡΦΗ [ΑΡΧΕΙΟ ...] 

OPTION είναι μια λίστα πρόσθετων χαρακτηριστικών που δίνουν την εντολή όπως -i ή --ignore-case, οι οποίες και οι δύο αγνοούν τη διάκριση των περιπτώσεων μεταξύ του κανονικού προτύπου που καθορίστηκε και της ταυτόχρονης αντιστοίχισης του από το αρχείο.

Το PATTERN είναι απλώς μια εκτεταμένη κανονική έκφραση.

Το αρχείο είναι μόνο το όνομα του αρχείου, αν είναι στον ίδιο κατάλογο εργασίας ή η διαδρομή προς το αρχείο.

Έτρεξα την εντολή στην επίσημη τεκμηρίωση της Python 3.6. Η ακόλουθη εικόνα είναι το αποτέλεσμα.

Τα κόκκινα στοιχεία υποδεικνύουν όλα τα μέρη που συναντά η λέξη "ουρά". Περνώντας -i ως επιλογή στην εντολή συμπεριελάμβανε αντιστοιχίσεις της λέξης "ουρά". Θυμηθείτε, η περίπτωση δεν έχει σημασία όταν μεταβιβάζεται ως επιλογή.

Πρόσθετα

Το pdfgrep έχει αρκετές ενδιαφέρουσες επιλογές για χρήση. Ωστόσο, θα καλύψω μόνο λίγα εδώ.

  • -c ή --count : αυτό καταστέλλει την κανονική έξοδο αγώνων. Αντί να εμφανίζει τη μακρά έξοδο των αντιστοιχιών, εμφανίζει μόνο μια τιμή που αντιπροσωπεύει τον αριθμό των φορών που η λέξη συναντήθηκε στο αρχείο
  • -p ή --page-count : Αυτή η επιλογή εκτυπώνει τους αριθμούς σελίδων των αντιστοιχιών και τον αριθμό των εμφάνισης του σχεδίου στη σελίδα
  • -m ή --max-count [αριθμός]: καθορίζει το μέγιστο αριθμό αντιστοιχιών. Αυτό σημαίνει ότι όταν επιτευχθεί ο αριθμός των αγώνων, η εντολή διακόπτει την ανάγνωση του αρχείου.

Ο πλήρης κατάλογος των υποστηριζόμενων επιλογών μπορεί να βρεθεί στις σελίδες ανθρώπου ή στην ηλεκτρονική τεκμηρίωση pdfgrep. Μην ξεχνάτε ότι το pdfgrep μπορεί να ψάξει πολλαπλά αρχεία ταυτόχρονα, σε περίπτωση που εργάζεστε με κάποια μαζικά αρχεία. Το προεπιλεγμένο χρώμα σημείων αντιστοίχισης μπορεί να αλλάξει μεταβάλλοντας τη μεταβλητή περιβάλλοντος GREP_COLORS.

συμπέρασμα

Την επόμενη φορά που σκέφτεστε να ανοίξετε ένα αρχείο PDF για να αναζητήσετε οτιδήποτε. σκεφτείτε τη χρήση pdfgrep. Το εργαλείο έρχεται σε πρακτικό και θα σας εξοικονομήσει χρόνο.