Εντολή Grep: ισχυρό εργαλείο για την εύρεση κειμένου από το Terminal

Εντολή Grep

Σχεδόν οποιοσδήποτε διαθέτει υπολογιστή ή συνεργάζεται με αυτόν θα γνωρίζει τη συντόμευση πληκτρολογίου Ctrl + F για να βρει κείμενο. Το "F" προέρχεται από το "Find", "to find" στα Αγγλικά και μπορεί να χρησιμοποιηθεί, για παράδειγμα, για την εύρεση κειμένου σε μια ιστοσελίδα. Αυτή η συντόμευση είναι επίσης διαθέσιμη σε πολλές εφαρμογές, υπάρχουν προγράμματα που χρησιμοποιούν την αναζήτηση "B" για ", αλλά αυτές οι συντομεύσεις λειτουργούν μόνο εάν είμαστε μέσα στην εφαρμογή και με το αρχείο ανοιχτό. Στο Linux έχουμε πολύ ισχυρά εργαλεία που μπορούμε να ξεκινήσουμε από το τερματικό και αν το θέλουμε βρείτε οποιοδήποτε κείμενο είναι στην ομάδα μας, θα χρησιμοποιήσουμε την εντολή grep.

grep Είναι μια εντολή που θα μας βοηθήσει να βρούμε κείμενο μέσα στο αρχείο που υποδεικνύουμε. Το όνομά του προέρχεται από το g / re / p, μια εντολή που λειτουργεί για κάτι παρόμοιο σε ένα πρόγραμμα επεξεργασίας κειμένου Unix / Linux. Όπως πολλές άλλες εντολές, grep Εχει πολλά διαθέσιμες επιλογές που θα προσθέσουμε με τη μορφή επιστολών και ο καθένας θα εξυπηρετήσει ένα διαφορετικό έργο. Συνδυάζοντας αυτές τις επιλογές θα είμαστε σε θέση να πραγματοποιήσουμε σύνθετες αναζητήσεις σε ένα ή περισσότερα αρχεία. Εδώ σας δείχνουμε όλα όσα πρέπει να γνωρίζετε.

με grep θα βρούμε οποιοδήποτε κείμενο σε οποιοδήποτε αρχείο

Πρώτα απ 'όλα θα εξηγήσουμε τις διαθέσιμες επιλογές:

  • -i: δεν θα κάνει διάκριση μεταξύ κεφαλαίων και πεζών.
  • -w: αναγκάστε το να βρει μόνο συγκεκριμένες λέξεις.
  • -v: επιλέγει τις γραμμές που δεν ταιριάζουν.
  • -n: δείχνει τον αριθμό της γραμμής με τις λέξεις που ζητήθηκαν.
  • -h: αφαιρεί το πρόθεμα από το όνομα αρχείου Unix στην έξοδο.
  • -r: αναζητά καταλόγους αναδρομικά.
  • -R: like -r αλλά ακολουθήστε όλους τους συμβολικούς συνδέσμους.
  • -l: εμφανίζει μόνο ονόματα αρχείων με επιλεγμένες γραμμές.
  • -c- Εμφανίζει μόνο έναν αριθμό ανά αρχείο των επιλεγμένων γραμμών.
  • -Χρώμα: Εμφανίζει τα αντίστοιχα μοτίβα σε χρώματα.

Στην εικόνα που έχετε επικεφαλίδα αυτού του άρθρου έχω αναζητήσει τη λέξη "Εικόνες" στο αρχείο "830.desktop" που βρίσκεται σε αυτήν τη διαδρομή. Όπως μπορείτε να δείτε, έχω γράψει:

grep Imágenes /home/pablinux/Documentos/830.desktop

Λάβετε υπόψη ότι σε αυτό το άρθρο θα γράψουμε παραδείγματα που πρέπει να τροποποιηθούν σύμφωνα με τις προτιμήσεις αναζήτησης. Λέγοντας "Αρχείο", "Word", κ.λπ., αναφερόμαστε στο αρχείο με τη διαδρομή του. Αν είχα γράψει "grep Images 830.desktop", θα είχα λάβει ένα μήνυμα που να λέει ότι το αρχείο δεν υπάρχει. Ή έτσι θα ήταν εκτός εάν το αρχείο ήταν στον ριζικό κατάλογο.

Άλλα παραδείγματα θα ήταν:

  • grep -i images /home/pablinux/Documentos/830.desktop, όπου "εικόνες" θα ήταν η λέξη που θέλουμε να βρούμε και το υπόλοιπο το αρχείο με τη διαδρομή του. Αυτό το παράδειγμα θα αναζητούσε "εικόνες" στο αρχείο "830.desktop" χωρίς ευαισθησία.
  • grep -R εικόνες: θα αναζητούσε όλες τις γραμμές ενός καταλόγου και όλους τους υποκαταλόγους του όπου βρίσκεται η λέξη "εικόνες".
  • grep -c παράδειγμα test.txt: αυτό θα μας αναζητούσε και θα δείξει τον συνολικό αριθμό των φορών που εμφανίζεται το "παράδειγμα" σε ένα αρχείο που ονομάζεται "test.txt.

Με grep μπορούμε επίσης να αναζητήσουμε αρχεία

Εάν αυτό που θέλουμε είναι να βρούμε το αρχείο 830.desktop, θα γράψουμε την ακόλουθη εντολή:

grep 830.desktop

Αυτό θα εκτελέσει ένα αναζητήστε το αρχείο «830.desktop» στον προσωπικό μας φάκελοΔηλαδή, εάν το αρχείο βρίσκεται στον προσωπικό φάκελο άλλου χρήστη, δεν θα βρεθεί. Αυτό είναι το πιο συνηθισμένο πράγμα στον κόσμο, επειδή ένας χρήστης δεν έχει άδεια πρόσβασης στο περιεχόμενο ενός άλλου χωρίς τον κωδικό πρόσβασής του.

Τρόπος εκτέλεσης αναδρομικών αναζητήσεων

grep μας επιτρέπει επίσης εκτελέστε αναζητήσεις που υπόκεινται σε επαναλαμβανόμενους κανόνες ή οδηγίες. Για παράδειγμα, διαβάστε όλα τα αρχεία σε κάθε κατάλογο που περιέχει τη λέξη "Pablinux". Γι 'αυτό θα γράψουμε:

grep -r Pablinux /home/

Ω καλά:

grep -R Pablinux /home/

Θα δούμε τα αποτελέσματα για το "Pablinux" σε μια ξεχωριστή γραμμή με το όνομα του αρχείου στο οποίο βρέθηκε. Εάν δεν θέλουμε να δούμε τα ονόματα των αρχείων στην έξοδο δεδομένων, θα χρησιμοποιήσουμε την επιλογή -h (από "απόκρυψη"; απόκρυψη):

grep -h -R Pablinux /home/

Μπορούμε να ενώσουμε τις επιλογές και να γράψουμε "-hR" χωρίς τα εισαγωγικά.

Πώς να κάνετε ακριβείς αναζητήσεις λέξεων

Μερικές φορές υπάρχουν αρχεία που περιέχουν αυτό που θέλουμε να αναζητήσουμε κάτι άλλο. Για παράδειγμα, αυτό μπορεί να συμβεί σε εμάς με σύνθετες λέξεις και αναζητώντας "δάση" μπορούμε να βρούμε "ranger". Αν θέλουμε βρείτε μια ακριβή λέξη θα χρησιμοποιήσουμε την επιλογή -w:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

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

egrep -w bosques|plantas /ruta/del/archivo

Μάθετε πόσες φορές μια λέξη εμφανίζεται σε ένα αρχείο

grep είναι επίσης ικανό μετρήστε πόσες φορές εμφανίζεται μια λέξη σε ένα αρχείο. Για αυτό θα χρησιμοποιήσουμε την επιλογή -c:

grep -c prueba /ruta/al/archivo

Προσθέτοντας την επιλογή - αυτό που θα δούμε είναι ο αριθμός της γραμμής στην οποία εμφανίζεται η λέξη.

Αντίστροφη αναζήτηση

Μπορούμε επίσης να κάνουμε το αντίθετο, δηλαδή, αναζητήστε γραμμές που δεν περιέχουν λέξη. Για αυτό θα χρησιμοποιήσουμε την επιλογή -v, η οποία θα έχει ως εξής:

grep -v la ruta/al/archivo

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

Πρόσβαση σε πληροφορίες συστήματος με grep

Μοντέλο υπολογιστή

grep Δεν είναι μόνο ικανό να ψάξει μέσα σε αρχεία. Είναι επίσης ικανός να προβάλλει πληροφορίες συστήματος. Στο προηγούμενο στιγμιότυπο οθόνης μπορούμε να δούμε πώς μας δείχνει ποιο μοντέλο υπολογιστή έχουμε (ξέρω ότι δεν είναι ο πιο ισχυρός φορητός υπολογιστής στον κόσμο). Για αυτό χρησιμοποιήσαμε την εντολή:

cat /proc/cpuinfo | grep -i 'Model'

Ω καλά:

grep -i 'Model' /proc/cpuinfo

Αν αυτό που θέλουμε είναι να δούμε τα ονόματα των μονάδων δίσκου θα γράψουμε:

dmesg | egrep '(s|h)d[a-z]'

Τρόπος καταχώρισης μόνο ονομάτων αρχείων που ταιριάζουν

Εάν θέλουμε να δούμε μια λίστα με μόνο τα ονόματα των αρχείων που ταιριάζουν με μια αναζήτηση, θα χρησιμοποιήσουμε την επιλογή -l όπως φαίνεται παρακάτω:

grep -l 'main' *.c

Και αν θέλουμε να δούμε τη λέξη σε χρώματα θα γράψουμε:

grep --color palabra /ruta/al/archivo

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


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Νορδρί dijo

    Γεια σας!
    Όταν λέτε ότι το Grep χρησιμοποιείται επίσης για αναζήτηση αρχείων, δεν νομίζω ότι είναι σωστό, επειδή εάν εκτελείτε το grep EXPRESSION και δεν το μεταφέρετε σε αυτό, θα περιμένει την εισαγωγή δεδομένων από την τυπική είσοδο.
    Σύμφωνα με τη σελίδα του εγχειριδίου:
    Το grep αναζητά τα ονόματα FILEs για γραμμές που περιέχουν αντιστοίχιση με το δεδομένο PATTERN. Εάν δεν έχουν καθοριστεί αρχεία ή εάν δοθεί το αρχείο "-", το grep αναζητά τυπική είσοδο.
    Γι 'αυτό μπορείτε να το χρησιμοποιήσετε σε αγωγούς, όπως αυτός που αναλύει την έξοδο του / proc / cpuinfo μεταβιβάζοντας την έξοδο αυτής της εντολής ως είσοδος στο grep μπορείτε να κάνετε την αναζήτηση.
    χαιρετίσματα

  2.   Ana dijo

    Πολύ καλή θέση.
    Το εξηγείτε πολύ καλά και πηγαίνετε κατευθείαν στο σημείο.