Πώς να χρησιμοποιήσετε την εντολή Grep στο Linux

Κατανόηση της εντολής grep με πρακτικά παραδείγματα για εύκολο φιλτράρισμα και εμφάνιση του περιεχομένου του αρχείου

GREP σημαίνει «Παγκόσμια εκτύπωση τυπικής έκφρασης». Είναι ένα χρήσιμο βοηθητικό πρόγραμμα γραμμής εντολών που παρέχεται από το Linux, για την αναζήτηση της γραμμής κειμένου που ταιριάζει με το μοτίβο που παρέχει ο χρήστης.

grep παίρνει την είσοδο από τον χρήστη με τη μορφή συμβολοσειρών ή λέξεων που ο χρήστης επιθυμεί να αναζητήσει σε ένα συγκεκριμένο αρχείο. Στη συνέχεια, η εντολή ελέγχει το αρχείο που έχει καθορίσει ο χρήστης για αυτό το μοτίβο και, στη συνέχεια, επιστρέφει τις γραμμές που ταιριάζουν με το μοτίβο που παρέχεται.

Κάνει εξαιρετική δουλειά φιλτράροντας το περιεχόμενο ενός αρχείου, διευκολύνοντας έτσι την αναζήτηση συγκεκριμένου περιεχομένου σε μεμονωμένα ή πολλαπλά αρχεία ταυτόχρονα.

Σε αυτό το άρθρο, ας εξετάσουμε τη λειτουργία του grep εντολή με μερικά πρακτικά παραδείγματα αναλυτικά.

Διαθέσιμες επιλογές με grep εντολή

Αυτές είναι μερικές από τις βασικές επιλογές που θα χρησιμοποιείτε συχνά με το grep εντολή.

ΕπιλογήΠεριγραφή
-ΕγώΓια αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων
-rΓια αναδρομική αναζήτηση για όλα τα αρχεία στον καθορισμένο κατάλογο και τους υποκαταλόγους του
-ντοΓια να εμφανιστεί ο συνολικός αριθμός των φορών που εμφανίζεται μια συμβολοσειρά
-vΓια να εμφανίσετε τις γραμμές που δεν ταιριάζουν
-wΦίλτρο για τη συγκεκριμένη λέξη που χρησιμοποιείται ξεχωριστά

Χρησιμοποιώντας το grep εντολή

grep η εντολή χρησιμοποιείται συνήθως με το σωλήνα (|) χρησιμότητα. Μπορεί να εφαρμοστεί με το shell pipe όταν θέλετε να το χρησιμοποιήσετε με κάποιες άλλες εντολές Linux. Παρόλο, grep μπορεί επίσης να χρησιμοποιηθεί μεμονωμένα χωρίς το σωλήνα (|) χρησιμότητα.

Ας δούμε μερικές από τις βασικές συντακτικές του grep εντολή με και χωρίς το βοηθητικό πρόγραμμα σωλήνα.

Επιτρέψτε μου πρώτα να σας δείξω το δείγμα αρχείου κειμένου που θα χρησιμοποιήσω για να το επεξηγήσω grep εντολή.

Η ΙΝΔΙΑ ΕΙΝΑΙ ΜΙΑ ΟΜΟΡΦΗ ΧΩΡΑ ΑΓΑΠΑΣ ΤΗΣ ΕΙΡΗΝΗΣ. Η Ινδία βασίζεται σε τρεις πυλώνες νομοθετικής, εκτελεστικής και δικαστικής εξουσίας. Η Ινδία είναι μια όμορφη χώρα που αγαπούν την ειρήνη. Η Ινδία νοιάζεται για τους ανθρώπους καθώς ο πόρος της είναι οι καρτεσιανές συντεταγμένες σημασία όλων των καρτεσιανών συντεταγμένων. Ακολουθούν δύο κενές γραμμές. Η χρήση ενός καροτσιού είναι ένα κοινό θέαμα στο χωριό για τις αγροτικές δουλειές. Αυτό είναι το τέλος του δείγματος αρχείου.

grep χρησιμοποιείται με σωλήνα ( | )χρησιμότητα

grep Η εντολή μπορεί να εφαρμοστεί μαζί με άλλες εντολές Linux χρησιμοποιώντας τους σωλήνες φλοιού. Όπως, χρησιμοποιώντας το Γάτα εντολή για εμφάνιση του περιεχομένου του αρχείου αλλά ταυτόχρονα διοχέτευση της εξόδου χρησιμοποιώντας το grep εντολή για εμφάνιση μόνο του περιεχομένου που θέλετε να δείτε. Αυτό θα γίνει πιο ξεκάθαρο όταν περάσουμε από το παράδειγμα.

Σύνταξη:

[εντολή] | grep [χορδή]

Παράδειγμα:

δείγμα γάτας.txt | grep νομοθετικό σώμα

Εδώ, έχω χρησιμοποιήσει το Γάτα εντολή για εμφάνιση ορισμένων γραμμών από το αρχείο «sample.txt». Πρέπει να εμφανίζονται μόνο εκείνες οι γραμμές που περιέχουν τη λέξη «νομοθετικό σώμα» και αγνοούν τις υπόλοιπες γραμμές.

Παραγωγή:

gaurav@ubuntu:~/χώρος εργασίας$ cat sample.txt | Το grep νομοθετικό σώμα της Ινδίας βασίζεται σε τρεις πυλώνες νομοθετικής, εκτελεστικής και δικαστικής εξουσίας. gaurav@ubuntu:~/χώρος εργασίας$

grep χρησιμοποιείται χωρίς σωλήνα ( |)χρησιμότητα

grep μπορεί να χρησιμοποιηθεί ακόμη και απευθείας ως μεμονωμένη εντολή χωρίς τη χρήση του σωλήνα ( | ) χρησιμότητα.

Σύνταξη:

grep [string_to_be_searched] [όνομα αρχείου]

Παράδειγμα:

grep India sample.txt

Παραγωγή:

Η Ινδία είναι μια όμορφη χώρα που αγαπούν την ειρήνη. Η Ινδία νοιάζεται για τους ανθρώπους ως πόρος της

Έτσι, έχω χρησιμοποιήσει το grep εντολή απευθείας για να φιλτράρετε τις γραμμές που περιέχουν τη συμβολοσειρά «Ινδία» από το αρχείο κειμένου «sample.txt».

Αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων με χρήση grep εντολή

Το Linux είναι πολύ προσεκτικό σχετικά με την ευαισθησία πεζών-κεφαλαίων όταν ενεργοποιούμε τις εντολές στο τερματικό. Αυτό απαιτεί από τον χρήστη να είναι προσεκτικός σχετικά με την περίπτωση της συμβολοσειράς που έχει τοποθετηθεί στην εντολή.

Ας το δούμε αυτό μέσα από ένα παράδειγμα.

grep ειρήνη δείγμα.txt

Σε αυτήν την περίπτωση, δεν θα λάβουμε έξοδο, καθώς δεν υπάρχει λέξη ως "ειρήνη" στο δείγμα αρχείου. Έχουμε τη λέξη «Ειρήνη» με κεφαλαίο «Π». Η λέξη είναι η ίδια αλλά όταν χρησιμοποιούμε το grep εντολή χωρίς καμία επιλογή, αναζητά την ακριβή αντιστοίχιση στο αρχείο, αγνοώντας τυχόν αλλαγές στα πεζά γράμματα.

Για να αποφύγετε αυτήν την ασάφεια, μπορείτε απλά να χρησιμοποιήσετε το -Εγώ επιλογή που λέει κυριολεκτικά το grep εντολή "Ξεχάστε την περίπτωση που έχω βάλει τη συμβολοσειρά και απλώς αναζητήστε όλα τα μοτίβα που ταιριάζουν στο αρχείο."

Σύνταξη:

grep -i [string] [όνομα αρχείου]

Παράδειγμα:

grep -i ειρήνη δείγμα.txt

Παραγωγή:

Η ΙΝΔΙΑ ΕΙΝΑΙ ΜΙΑ ΟΜΟΡΦΗ ΧΩΡΑ ΑΓΑΠΑΣ ΤΗΣ ΕΙΡΗΝΗΣ. Η Ινδία είναι μια όμορφη χώρα που αγαπούν την ειρήνη.

Όλες οι γραμμές που ταιριάζουν εμφανίζονται ανεξάρτητα από την περίπτωση στην οποία βρίσκεται η συμβολοσειρά που ταιριάζει.

Αναδρομική αναζήτηση χρησιμοποιώντας grep εντολή

ο -r Η επιλογή θα αναζητήσει όλα τα αρχεία σε έναν κατάλογο και όλους τους υποκαταλόγους του που ταιριάζει με το μοτίβο συμβολοσειράς που παρέχεται από τον χρήστη στην εντολή.

Σύνταξη:

grep -i -r [string] [file_path]

Παράδειγμα:

grep -i -r tomcat /home/gaurav/χώρος εργασίας

Η συμβολοσειρά εδώ είναι "tomcat" και θα αναζητηθεί στον χώρο εργασίας του καταλόγου. Όλοι οι υποκατάλογοι και τα αρχεία στον κατάλογο «χώρος εργασίας» θα σαρωθούν επίσης για να ταιριάζουν με το μοτίβο συμβολοσειράς που παρέχεται.

Παραγωγή:

./context_log.policy:// catalina.policy - Δικαιώματα πολιτικής ασφαλείας για Tomcat 7 ./context_log.policy:// Σημείωση: Εάν το tomcat-juli.jar βρίσκεται στο ${catalina.base} και όχι στο ${catalina.home }, ./context_log.policy:// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "file:${catalina.home }/bin/tomcat-juli.jar" { ./context_log.policy: permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - Tomcat Bootstrap JAR ./catalina.properties:# - Tomcat API JARs ./catalina.properties:# - Tomcat JARs ./catalina.properties:# - Κοινά μη-Tomcat JARs ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina#.properties tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache.0000.=5 /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

ΣΗΜΕΙΩΣΗ: Κατά τη χρήση του -r επιλογή με το grep εντολή πρέπει να δώσουμε τη διαδρομή του αρχείου και όχι το όνομα αρχείου

Αναζήτηση ολόκληρων λέξεων μόνο με grep εντολή

Πολλές φορές η περίπτωση είναι ότι θα ψάχνετε για μία λέξη αλλά θα καταλήξετε να συμπληρώσετε το τερματικό σας με τις αντίστοιχες γραμμές που περιέχουν την αντίστοιχη λέξη σας αλλά όχι ως μεμονωμένη λέξη. Μπορεί να δείτε τις γραμμές που περιέχουν μερικές λέξεις των οποίων το υποτμήμα είναι η συμβολοσειρά που έχετε εισαγάγει.

Μπερδευτείτε με αυτό; Μην ανησυχείτε, είναι πολύ πιο εύκολο να το καταλάβετε μόλις λάβετε το παράδειγμα.

Παράδειγμα:

Εδώ, θέλω να αναζητήσω μια μεμονωμένη λέξη "καλάθι" και να εμφανίσω όλες τις γραμμές που αντιστοιχούν σε αυτήν τη λέξη στο αρχείο "sample.txt".

grep -i cart sample.txt

Παραγωγή:

Καρτεσιανές συντεταγμένες σημασία όλων των καρτεσιανών συντεταγμένων. Η χρήση καροτσιού είναι συνηθισμένο θέαμα στο χωριό για τις αγροτικές δουλειές Το κάρο χάθηκε καθώς το αγόρι το άφησε χαλαρό.

Στην έξοδο, μπορείτε να παρατηρήσετε ότι η λέξη "Cartesian" περιέχει επίσης τη λέξη "cart" και, ως εκ τούτου, οι γραμμές που περιέχουν τη λέξη "Cartesian" εμφανίζονται επίσης, παρόλο που δεν θέλουμε να εμφανίζονται.

Μπορείτε να χρησιμοποιήσετε το -w επιλογή με το grep εντολή για την επίλυση αυτής της ασάφειας.

Σύνταξη:

grep -i -w [string] [όνομα αρχείου]

Παράδειγμα:

grep -i -w cart sample.txt

Παραγωγή:

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

Τώρα, όταν έχετε χρησιμοποιήσει το -w επιλογή με grep θα λάβετε μόνο τις γραμμές στις οποίες χρησιμοποιείται η λέξη «καλάθι» ως σύνολο.

Αντεστραμμένη αναζήτηση με χρήση grep εντολή

grep Η εντολή μπορεί επίσης να χρησιμοποιηθεί με αντίστροφο τρόπο. Μπορούμε να χρησιμοποιήσουμε το grep εντολή αντίθετα κρύβοντας τις γραμμές που ταιριάζουν και εμφανίζοντας μόνο τις γραμμές όπου δεν βρέθηκε η αντιστοίχιση. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας το -v επιλογή με το grep εντολή.

Σύνταξη:

grep -i -v [string] [όνομα αρχείου]

Παράδειγμα:

grep -i -v πόρος sample.txt

Παραγωγή:

Η ΙΝΔΙΑ ΕΙΝΑΙ ΜΙΑ ΟΜΟΡΦΗ ΧΩΡΑ ΑΓΑΠΑΣ ΤΗΣ ΕΙΡΗΝΗΣ. Η Ινδία βασίζεται σε τρεις πυλώνες νομοθετικής, εκτελεστικής και δικαστικής εξουσίας. Η Ινδία είναι μια όμορφη χώρα που αγαπούν την ειρήνη. καρτεσιανές συντεταγμένες σημασία όλων των καρτεσιανών συντεταγμένων. Η χρήση ενός καροτσιού είναι ένα κοινό θέαμα στο χωριό για τις αγροτικές δουλειές. Αυτό είναι το τέλος του δείγματος αρχείου.

Στην έξοδο, όλες οι άλλες γραμμές εμφανίζονται εκτός από τη γραμμή που περιέχει τη λέξη «πόρος».

Καταμέτρηση εμφανίσεων ταιριάσματος συμβολοσειράς

Η έξοδος του grep Η εντολή είναι συνήθως πολύ μεγάλη εάν τα δεδομένα στο αρχείο είναι εκτεταμένα. Όσο περισσότεροι είναι οι αγώνες, τόσο μεγαλύτερες είναι οι έξοδοι του grep εντολή. Το Linux σας παρέχει μια επιλογή όπου μπορείτε να εμφανίσετε τον αριθμό των εμφανίσεων του αγώνα.

Σύνταξη:

grep -i -c [string] [όνομα αρχείου]

Παράδειγμα:

grep -i -c india sample.txt

Παραγωγή:

gaurav@ubuntu:~/workspace$ grep -i -c india sample.txt 4 gaurav@ubuntu:~/workspace$

Εδώ, η έξοδος είναι ένας αριθμός που είναι ο αριθμός των εμφανίσεων της λέξης "Ινδία" στο αρχείο sample.txt.

ΣΗΜΕΙΩΣΗ: Έχω χρησιμοποιήσει το -Εγώ επιλογή σε κάθε παράδειγμα για να είστε ασφαλείς με το θέμα ευαισθησίας πεζών-κεφαλαίων. Σε περίπτωση που είστε σίγουροι για την περίπτωση της λέξης που αναζητάτε, τότε μπορείτε με ασφάλεια να παραλείψετε το -Εγώ επιλογή.

συμπέρασμα

Έχουμε μάθει τις βασικές χρήσεις του grep εντολή στα συστήματα Linux σε αυτό το σεμινάριο. Μάθαμε επίσης να προβάλλουμε ποικίλο περιεχόμενο που ταιριάζει καλύτερα στις απαιτήσεις μας και να μην γεμίζουμε το τερματικό με πολλές γραμμές. grep Η εντολή σίγουρα θα εξοικονομήσει χρόνο εάν χρησιμοποιηθεί για τη σάρωση μεγάλων συνόλων δεδομένων.

Κατηγορία: Linux