Αυτός ο οδηγός περιηγείται μερικά από τα καλύτερα εργαλεία γραμμής εντολών που χρησιμοποιούνται για την αναζήτηση συμβολοσειρών ή μοτίβων σε αρχεία κειμένου. Αυτά τα εργαλεία χρησιμοποιούνται συνήθως παράλληλα με τις κανονικές εκφράσεις - συντομεύονται ως REGEX - οι οποίες είναι μοναδικές συμβολοσειρές για την περιγραφή ενός μοτίβου αναζήτησης.
Χωρίς πολλά άλλα λόγια, ας βουτήξουμε.
Έρχεται στην πρώτη θέση είναι το βοηθητικό εργαλείο grep - είναι αρκτικόλεξο για Παγκόσμια εκτύπωση κανονικής έκφρασης, είναι ένα ισχυρό εργαλείο γραμμής εντολών που είναι χρήσιμο όταν αναζητάτε μια συγκεκριμένη συμβολοσειρά ή ένα μοτίβο σε ένα αρχείο.
Γκρεπ πλοία με σύγχρονες διανομές Linux από προεπιλογή και σας δίνει την ευελιξία να επιστρέψετε διάφορα αποτελέσματα αναζήτησης. Με το grep, μπορείτε να εκτελέσετε μια μεγάλη ποικιλία λειτουργιών όπως:
Η σύνταξη για τη χρήση του grep Η εντολή είναι πολύ απλή:
$ grep μοτίβο ΑΡΧΕΙΟ.
Για παράδειγμα, για αναζήτηση της συμβολοσειράς «Linux«Σε ένα αρχείο, ας πούμε, hello.txt αγνοώντας την ευαισθησία πεζών, εκτελέστε την εντολή:
$ grep -i Linux hello.txt.
Για να λάβετε περισσότερες επιλογές με τις οποίες μπορείτε να χρησιμοποιήσετε grep, απλώς διαβάστε το άρθρο μας που παραθέτει περισσότερα προηγμένα παραδείγματα εντολών grep.
Sed - συντομία για Stream Editor -είναι ένα άλλο χρήσιμο εργαλείο γραμμής εντολών για χειρισμός κειμένου σε αρχείο κειμένου. Το Sed αναζητά, φιλτράρει και αντικαθιστά συμβολοσειρές σε ένα δεδομένο αρχείο με μη διαδραστικό τρόπο.
Από προεπιλογή, sed εντολή εκτυπώνει την έξοδο σε STDOUT (Standard Out), υπονοώντας ότι το αποτέλεσμα της εκτέλεσης εκτυπώνεται στο τερματικό αντί να αποθηκεύεται σε αρχείο.
Η εντολή Sed καλείται ως εξής:
$ sed -OPTIONS εντολή [αρχείο προς επεξεργασία]
Για παράδειγμα, για την αντικατάσταση όλων των περιπτώσεων «Unix' με 'Linux", Επικαλεστείτε την εντολή:
$ sed 's/Unix/Linux' hello.txt.
Εάν θέλετε να ανακατευθύνετε την έξοδο αντί να την εκτυπώσετε στο τερματικό, χρησιμοποιήστε το σύμβολο ανακατεύθυνσης ( > )
όπως φαίνεται.
$ sed 's/Unix/Linux' hello.txt> output.txt.
Η έξοδος της εντολής αποθηκεύεται στο output.txt αντί να εκτυπωθεί στην οθόνη.
Για να δείτε περισσότερες επιλογές που μπορούν να χρησιμοποιηθούν, ελέγξτε ξανά τις ανδρικές σελίδες.
$ man sed.
Ack είναι ένα γρήγορο και φορητό εργαλείο γραμμής εντολών γραμμένο σε Perl. Ack θεωρείται φιλικός αντικαταστάτης του βοηθητικό πρόγραμμα grep και εξάγει αποτελέσματα με οπτικά ελκυστικό τρόπο.
Ack εντολή αναζητά το αρχείο ή τον κατάλογο για τις γραμμές που περιέχουν την αντιστοίχιση για τα κριτήρια αναζήτησης. Στη συνέχεια, επισημαίνει την αντίστοιχη συμβολοσειρά στις γραμμές.
Ack έχει τη δυνατότητα να διακρίνει τα αρχεία με βάση τις επεκτάσεις αρχείων τους, και σε ένα βαθμό, το περιεχόμενο των αρχείων.
Σύνταξη εντολής Ack:
$ ack [options] PATTERN [FILE ...] $ ack -f [επιλογές] [ΔΙΕΥΘΥΝΣΗ ...]
Για παράδειγμα, για έλεγχο για τον όρο αναζήτησης Linux, τρέξιμο:
$ ack Linux hello.txt.
Το εργαλείο αναζήτησης είναι αρκετά έξυπνο και εάν δεν παρέχεται αρχείο ή κατάλογος από τον χρήστη, αναζητά τον τρέχοντα κατάλογο και τους υποκαταλόγους για το μοτίβο αναζήτησης.
Στο παρακάτω παράδειγμα, δεν παρέχεται κανένα αρχείο ή κατάλογος, αλλά το ack εντόπισε αυτόματα το διαθέσιμο αρχείο και έκανε αναζήτηση για το παρεχόμενο μοτίβο που ταιριάζει.
$ ack Linux.
Για εγκατάσταση άκ στο σύστημά σας εκτελέστε την εντολή:
$ sudo apt install ack-grep [Στο Debian/Ubuntu] $ sudo dnf εγκατάσταση ack-grep [On CentOS/RHEL]
Awk είναι μια πλήρης γλώσσα δέσμης ενεργειών και επίσης ένα εργαλείο επεξεργασίας κειμένου και χειρισμού δεδομένων. Αναζητά αρχεία ή προγράμματα που περιέχουν το μοτίβο αναζήτησης. Όταν βρεθεί η συμβολοσειρά ή το μοτίβο, awk αναλαμβάνει δράση για την αντιστοίχιση ή τη γραμμή και εκτυπώνει τα αποτελέσματα STDOUT.
ο AWK το μοτίβο περικλείεται μεταξύ σγουρών στηριγμάτων ενώ ολόκληρο το πρόγραμμα περικλείεται σε μεμονωμένα εισαγωγικά.
Ας πάρουμε το πιο απλό παράδειγμα. Ας υποθέσουμε ότι εκτυπώνετε την ημερομηνία του συστήματός σας όπως φαίνεται:
$ ημερομηνία.
Ας υποθέσουμε ότι θέλετε να εκτυπώσετε μόνο την πρώτη τιμή, που είναι η ημέρα της εβδομάδας. Σε αυτή την περίπτωση, τοποθετήστε την έξοδο μέσα awk όπως φαίνεται:
$ ημερομηνία | awk '{print $ 1}'
Για να εμφανίσετε τις επόμενες τιμές, διαχωρίστε τις χρησιμοποιώντας ένα κόμμα όπως φαίνεται:
$ ημερομηνία | awk '{print $ 1, $ 2}'
Η παραπάνω εντολή θα εμφανίσει την ημέρα της εβδομάδας και την ημερομηνία του μήνα.
Για να λάβετε περισσότερες επιλογές με τις οποίες μπορείτε να χρησιμοποιήσετε awk, απλά διαβάστε το δικό μας σειρά εντολών awk.
ο ασημένιος αναζητητής είναι ένα εργαλείο αναζήτησης πολλαπλών πλατφορμών και κώδικα ανοιχτού κώδικα παρόμοιο με αυτό άκ αλλά με έμφαση στην ταχύτητα. Σας διευκολύνει να αναζητήσετε μια συγκεκριμένη συμβολοσειρά εντός αρχείων το συντομότερο δυνατό:
Σύνταξη:
$ ag OPTIONS search_pattern/path/to/file.
Για παράδειγμα, για αναζήτηση της συμβολοσειράς «Linux«Σε ένα αρχείο hello.txt κλήση της εντολής:
$ ag Linux hello.txt.
Για πρόσθετες επιλογές, επισκεφθείτε τις σελίδες ανδρών:
$ man ag.
Τέλος, έχουμε το ripgrep εργαλείο γραμμής εντολών. Ripgrep είναι ένα βοηθητικό πρόγραμμα πολλαπλών πλατφορμών για την αναζήτηση μοτίβων regex. Είναι πολύ γρηγορότερο από όλα τα προαναφερθέντα εργαλεία αναζήτησης και αναδρομικά αναζητά καταλόγους για μοτίβα αντιστοίχισης. Όσον αφορά την ταχύτητα και την απόδοση, κανένα άλλο εργαλείο δεν ξεχωρίζει αυτό Ripgrep.
Από προεπιλογή, ripgrep θα παραλείψει δυαδικά αρχεία/κρυφά αρχεία και καταλόγους. Επίσης, λάβετε υπόψη ότι από προεπιλογή δεν θα αναζητήσει αρχεία που αγνοούνται από .gitignore/.ignore/.rgignore αρχεία.
Ripgrep σας επιτρέπει επίσης να αναζητήσετε συγκεκριμένους τύπους αρχείων. Για παράδειγμα, για να περιορίσετε την αναζήτησή σας σε Javascript εκτελούνται αρχεία:
$ rg -Tsj.
Η σύνταξη για τη χρήση του ripgrep είναι αρκετά εύκολη:
$ rg [OPTIONS] PATTERN [PATH ...]
Για παράδειγμα. Για αναζήτηση περιπτώσεων της συμβολοσειράς ‘Linux’ σε αρχεία που βρίσκονται μέσα στον τρέχοντα κατάλογο, εκτελέστε την εντολή:
$ rg Linux.
Για εγκατάσταση ripgrep στο σύστημά σας εκτελέστε τις ακόλουθες εντολές:
$ sudo apt install ripgrep [Ενεργό Debian/Ubuntu] $ sudo pacman -S ripgrep [ΕνεργόArch Linux] $ sudo zypper install ripgrep [ΕνεργόOpenSuse] $ sudo dnf install ripgrep [ΕνεργόCentOS/RHEL/Fedora]
Για πρόσθετες επιλογές, επισκεφθείτε τις σελίδες ανδρών:
$ man rg.
Αυτά είναι μερικά από τα πιο ευρέως χρησιμοποιούμενα εργαλεία γραμμής εντολών για αναζήτηση, φιλτράρισμα και χειρισμό κειμένου στο Linux. Εάν έχετε άλλα εργαλεία που πιστεύετε ότι έχουμε παραλείψει, ενημερώστε μας στην ενότητα σχολίων.