Εγχειρίδια για τη γραμμή εντολών

Man » grep Manual online - λεπτομερής διαδικτυακή τεκμηρίωση για τη σελίδα man grep

🌍
grep, egrep, fgrep, rgrep - εκτύπωση γραμμών που ταιριάζουν με μοτίβα

ΣΥΝΤΑΞΗ

grep [ΕΠΙΛΟΓΗ]... ΜΟΤΊΒΑ [ΑΡΧΕΊΟ]...
grep [ΕΠΙΛΟΓΗ]... -e ΜΟΤΊΒΑ ... [ΑΡΧΕΊΟ]...
grep [ΕΠΙΛΟΓΗ]... -f ΑΡΧΕΊΟ_ΜΟΤΊΒΩΝ ... [ΑΡΧΕΊΟ]...

ΠΕΡΙΓΡΑΦΉ

Η grep αναζητά μοτίβα σε κάθε ΑΡΧΕΊΟ. Στην πρώτη μορφή της συνόψεως, η οποία χρησιμοποιείται εάν δεν υπάρχουν οι επιλογές -e ή -f, το πρώτο όρισμα ΜΟΤΊΒΑ είναι ένα ή περισσότερα μοτίβα που διαχωρίζονται με χαρακτήρες νέας γραμμής και η grep εκτυπώνει κάθε γραμμή που ταιριάζει με ένα μοτίβο. Συνήθως, το ΜΟΤΊΒΑ πρέπει να περικλείεται σε εισαγωγικά όταν η grep χρησιμοποιείται σε μια εντολή shell.

Ένα ΑΡΧΕΊΟ με το “-” αντιπροσωπεύει την τυπική είσοδο. Εάν δεν δοθεί κανένα ΑΡΧΕΊΟ, οι αναδρομικές αναζητήσεις εξετάζουν τον τρέχοντα κατάλογο και οι μη αναδρομικές αναζητήσεις διαβάζουν την τυπική είσοδο.

Η Debian περιλαμβάνει επίσης τις παραλλαγμένες εντολές egrep, fgrep και rgrep. Αυτές οι εντολές είναι οι ίδιες με τις grep -E, grep -F και grep -r, αντίστοιχα. Αυτές οι παραλλαγμένες εντολές είναι ξεπερασμένες στην κύρια έκδοση, αλλά η Debian τις παρέχει για λόγους συμβατότητας. Για λόγους φορητότητας, συνιστάται να αποφεύγονται οι παραλλαγμένες εντολές και να χρησιμοποιείται η grep με την αντίστοιχη επιλογή.

ΕΠΙΛΌΓΕΣ

Γενικές πληροφορίες προγράμματος

--help Εκτύπωση ενός μηνύματος χρήσης και έξοδος.

-V, --version
Εκτύπωση του αριθμού έκδοσης της grep και έξοδος.

Σύνταξη μοτίβων

-E, --extended-regexp
Ερμηνεία των ΜΟΤΊΒΩΝ ως εκτεταμένων κανονικών εκφράσεων (EREs, δείτε παρακάτω).

-F, --fixed-strings
Ερμηνεία των ΜΟΤΊΒΩΝ ως σταθερών συμβολοσειρών, όχι ως κανονικών εκφράσεων.

-G, --basic-regexp
Ερμηνεία των ΜΟΤΊΒΩΝ ως βασικών κανονικών εκφράσεων (BREs, δείτε παρακάτω). Αυτό είναι η προεπιλογή.

-P, --perl-regexp
Ερμηνεία των ΜΟΤΊΒΩΝ ως κανονικών εκφράσεων συμβατών με την Perl (PCREs). Αυτή η επιλογή είναι πειραματική όταν συνδυάζεται με την επιλογή -z (--null-data) και η grep -P μπορεί να προειδοποιήσει για μη υλοποιημένες δυνατότητες.

Έλεγχος αντιστοίχισης

-e ΜΟΤΊΒΑ, --regexp=ΜΟΤΊΒΑ
Χρήση του ΜΟΤΊΒΑ ως μοτίβα. Εάν αυτή η επιλογή χρησιμοποιηθεί πολλές φορές ή συνδυαστεί με την επιλογή -f (--file), αναζήτηση για όλα τα δεδομένα μοτίβα. Αυτή η επιλογή μπορεί να χρησιμοποιηθεί για την προστασία ενός μοτίβου που ξεκινά με το “-“.

-f ΑΡΧΕΊΟ, --file=ΑΡΧΕΊΟ
Λήψη μοτίβων από το ΑΡΧΕΊΟ, ένα ανά γραμμή. Εάν αυτή η επιλογή χρησιμοποιηθεί πολλές φορές ή συνδυαστεί με την επιλογή -e (--regexp), αναζήτηση για όλα τα δεδομένα μοτίβα. Το κενό αρχείο περιέχει μηδενικά μοτίβα και, επομένως, δεν ταιριάζει με τίποτα. Εάν το ΑΡΧΕΊΟ είναι -, ανάγνωση μοτίβων από την τυπική είσοδο.

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

--no-ignore-case
Μην αγνοείτε τις διαφορές πεζών-κεφαλαίων στα μοτίβα και στα δεδομένα εισόδου. Αυτό είναι η προεπιλογή. Αυτή η επιλογή είναι χρήσιμη για τη μετάδοση σε σενάρια shell που χρησιμοποιούν ήδη το -i, για να ακυρώσει τις επιπτώσεις του, επειδή οι δύο επιλογές αλληλοεπικαλύπτονται.

-v, --invert-match

Αντιστρέφει την έννοια της αντιστοίχισης, ώστε να επιλέγονται οι γραμμές που δεν ταιριάζουν.

-w, --word-regexp

Επιλέγει μόνο τις γραμμές που περιέχουν αντιστοιχίες που αποτελούν ολόκληρες λέξεις. Η δοκιμή είναι ότι η αντιστοιχούμενη υποσυμβολοσειρά πρέπει είτε να βρίσκεται στην αρχή της γραμμής είτε να προηγείται από έναν μη-λεκτικό χαρακτήρα. Ομοίως, πρέπει είτε να βρίσκεται στο τέλος της γραμμής είτε να ακολουθείται από έναν μη-λεκτικό χαρακτήρα. Οι λεκτικοί χαρακτήρες είναι τα γράμματα, τα ψηφία και η υπογράμμιση. Αυτή η επιλογή δεν έχει καμία επίδραση εάν καθοριστεί επίσης το -x.

-x, --line-regexp

Επιλέγει μόνο τις αντιστοιχίες που ταιριάζουν ακριβώς με ολόκληρη τη γραμμή. Για ένα κανονικό μοτίβο έκφρασης, αυτό είναι σαν να περικλείεται το μοτίβο σε παρενθέσεις και στη συνέχεια να περικλείεται με ^ και $.

Γενικός Έλεγχος Εξόδου

-c, --count

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

--color[=WHEN], --colour[=WHEN]

Περιβάλλει τις αντιστοιχούμενες (μη κενές) συμβολοσειρές, τις γραμμές που ταιριάζουν, τις γραμμές περιβάλλοντος, τα ονόματα αρχείων, τους αριθμούς γραμμών, τις μετατοπίσεις byte και τους διαχωριστές (για πεδία και ομάδες γραμμών περιβάλλοντος) με ακολουθίες διαφυγής για να τις εμφανίσει με χρώματα στην οθόνη. Τα χρώματα ορίζονται από τη μεταβλητή περιβάλλοντος GREP_COLORS. Το WHEN είναι never, always ή auto.

-L, --files-without-match

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

-l, --files-with-matches

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

-m NUM, --max-count=NUM

Σταματά την ανάγνωση ενός αρχείου μετά από NUM γραμμές που ταιριάζουν. Εάν το NUM είναι μηδέν, το grep σταματά αμέσως χωρίς να διαβάσει την είσοδο. Ένα NUM -1 αντιμετωπίζεται ως άπειρο και το grep δεν σταματά. εάν η είσοδος είναι η τυπική είσοδος από ένα κανονικό αρχείο και NUM γραμμές που ταιριάζουν, το grep διασφαλίζει ότι η τυπική είσοδος τοποθετείται ακριβώς μετά την τελευταία γραμμή που ταιριάζει πριν από την έξοδο, ανεξάρτητα από την παρουσία γραμμών περιβάλλοντος. Αυτό επιτρέπει σε μια κλήση διεργασία να συνεχίσει μια αναζήτηση. Όταν το grep σταματά μετά από NUM γραμμές που ταιριάζουν, εξάγει τυχόν γραμμές περιβάλλοντος που ακολουθούν. Όταν χρησιμοποιείται επίσης η επιλογή -c ή --count, το grep δεν εξάγει μια καταμέτρηση μεγαλύτερη από το NUM. Όταν χρησιμοποιείται επίσης η επιλογή -v ή --invert-match, το grep σταματά μετά την εξαγωγή NUM γραμμών που δεν ταιριάζουν.

-o, --only-matching

Εκτυπώνει μόνο τα τμήματα που ταιριάζουν (μη κενά) μιας γραμμής που ταιριάζει, με κάθε τέτοιο τμήμα σε μια ξεχωριστή γραμμή εξόδου.

-q, --quiet, --silent

Αθόρυβη λειτουργία. δεν γράφει τίποτα στην τυπική έξοδο. Εξέρχεται αμέσως με κατάσταση μηδέν εάν βρεθεί οποιαδήποτε αντιστοιχία, ακόμη και αν ανιχνευθεί σφάλμα. Δείτε επίσης την επιλογή -s ή --no-messages.


-s, --no-messages

Καταστέλλει τα μηνύματα σφαλμάτων σχετικά με μη υπάρχοντα ή μη αναγνώσιμα αρχεία.

Έλεγχος Προθέματος Γραμμής Εξόδου

-b, --byte-offset

Εμφανίζει την μηδενική τιμή byte offset μέσα στο αρχείο εισόδου πριν από κάθε γραμμή εξόδου. Εάν καθοριστεί το -o (--only-matching), εμφανίζει το offset του τμήματος που ταιριάζει.

-H, --with-filename

Εμφανίζει το όνομα του αρχείου για κάθε αντιστοιχία. Αυτό είναι η προεπιλογή όταν υπάρχουν περισσότερα από ένα αρχεία για αναζήτηση. Αυτή είναι μια επέκταση GNU.

-h, --no-filename

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

--label=ΕΤΙΚΕΤΑ

Εμφανίζει την είσοδο που προέρχεται από την τυπική είσοδο ως είσοδο που προέρχεται από το αρχείο ΕΤΙΚΕΤΑ. Αυτό μπορεί να είναι χρήσιμο για εντολές που μετατρέπουν το περιεχόμενο ενός αρχείου πριν από την αναζήτηση, π.χ., gzip -cd foo.gz | grep --label=foo -H 'κάποιο μοτίβο'. Δείτε επίσης την επιλογή -H.

-n, --line-number

Προσθέτει την αριθμημένη γραμμή (αρχίζοντας από το 1) μέσα στο αρχείο εισόδου πριν από κάθε γραμμή εξόδου.

-T, --initial-tab

Εξασφαλίζει ότι ο πρώτος χαρακτήρας του πραγματικού περιεχομένου της γραμμής ευθυγραμμίζεται σε ένα σημείο στήλης, έτσι ώστε η ευθυγράμμιση των στηλών να φαίνεται φυσιολογική. Αυτό είναι χρήσιμο με επιλογές που προσθέτουν στην έξοδο τους το πραγματικό περιεχόμενο: -H, -n και -b. Για να αυξηθεί η πιθανότητα οι γραμμές από ένα μόνο αρχείο να ξεκινούν όλες στην ίδια στήλη, αυτό επίσης προκαλεί την εκτύπωση της αριθμημένης γραμμής και του byte offset (εάν υπάρχουν) σε ένα πεδίο ελάχιστου μεγέθους.

-Z, --null

Εξάγει ένα μηδενικό byte (τον χαρακτήρα ASCII NUL) αντί για τον χαρακτήρα που κανονικά ακολουθεί ένα όνομα αρχείου. Για παράδειγμα, το grep -lZ εξάγει ένα μηδενικό byte μετά από κάθε όνομα αρχείου αντί για την συνήθη νέα γραμμή. Αυτή η επιλογή καθιστά την έξοδο αναμφίβολη, ακόμη και στην παρουσία ονομάτων αρχείων που περιέχουν ασυνήθιστους χαρακτήρες, όπως νέες γραμμές. Αυτή η επιλογή μπορεί να χρησιμοποιηθεί με εντολές όπως find -print0, perl -0, sort -z και xargs -0 για την επεξεργασία αυθαίρετων ονομάτων αρχείων, ακόμη και αυτών που περιέχουν χαρακτήρες νέας γραμμής.

Έλεγχος Γραμμών Περιβάλλοντος

-A NUM, --after-context=NUM

Εκτυπώνει NUM γραμμές περιβάλλοντος μετά από γραμμές που ταιριάζουν. Τοποθετεί μια γραμμή που περιέχει έναν διαχωριστικό ομάδας (--) μεταξύ συνεχόμενων ομάδων αντιστοιχιών. Με την επιλογή -o ή --only-matching, αυτό δεν έχει αποτέλεσμα και εμφανίζεται μια προειδοποίηση.

-B NUM, --before-context=NUM

Εκτυπώνει NUM γραμμές περιβάλλοντος πριν από γραμμές που ταιριάζουν. Τοποθετεί μια γραμμή που περιέχει έναν διαχωριστικό ομάδας (--) μεταξύ συνεχόμενων ομάδων αντιστοιχιών. Με την επιλογή -o ή --only-matching, αυτό δεν έχει αποτέλεσμα και εμφανίζεται μια προειδοποίηση.

-C NUM, -NUM, --context=NUM

Εκτυπώνει NUM γραμμές περιβάλλοντος. Τοποθετεί μια γραμμή που περιέχει έναν διαχωριστικό ομάδας (--) μεταξύ συνεχόμενων ομάδων αντιστοιχιών. Με την επιλογή -o ή --only-matching, αυτό δεν έχει αποτέλεσμα και εμφανίζεται μια προειδοποίηση.

--group-separator=SEP

Όταν χρησιμοποιούνται οι επιλογές -A, -B ή -C, εκτυπώνει το SEP αντί για το -- μεταξύ ομάδων γραμμών.

--no-group-separator

Όταν χρησιμοποιούνται οι επιλογές -A, -B ή -C, δεν εκτυπώνει έναν διαχωριστικό μεταξύ ομάδων γραμμών.


Επιλογή αρχείων και καταλόγων

-a, --text
Επεξεργαστείτε ένα δυαδικό αρχείο σαν να ήταν κείμενο· αυτό είναι ισοδύναμο με την επιλογή --binary-files=text.

--binary-files=ΤΥΠΟΣ
Εάν τα δεδομένα ή τα μεταδεδομένα ενός αρχείου υποδεικνύουν ότι το αρχείο περιέχει δυαδικά δεδομένα, υποθέστε ότι το αρχείο είναι τύπου ΤΥΠΟΣ. Τα μη-κειμενικά byte υποδεικνύουν δυαδικά δεδομένα· αυτά είναι είτε έξοδος byte που είναι εσφαλμένα κωδικοποιημένα για την τρέχουσα τοπική ρύθμιση, είτε μηδενικά byte εισόδου όταν δεν δίνεται η επιλογή -z.

Από προεπιλογή, ο ΤΥΠΟΣ είναι binary και το grep καταστέλλει την έξοδο μετά την ανακάλυψη μηδενικών δυαδικών δεδομένων εισόδου και καταστέλλει τις γραμμές εξόδου που περιέχουν εσφαλμένα κωδικοποιημένα δεδομένα. Όταν καταστέλλεται κάποια έξοδος, το grep ακολουθεί οποιαδήποτε έξοδο με ένα μήνυμα στην τυπική έξοδο λέγοντας ότι ένα δυαδικό αρχείο ταιριάζει.

Εάν ο ΤΥΠΟΣ είναι without-match, όταν το grep ανακαλύψει μηδενικά δυαδικά δεδομένα εισόδου, υποθέτει ότι το υπόλοιπο του αρχείου δεν ταιριάζει· αυτό είναι ισοδύναμο με την επιλογή -I.

Εάν ο ΤΥΠΟΣ είναι text, το grep επεξεργάζεται ένα δυαδικό αρχείο σαν να ήταν κείμενο· αυτό είναι ισοδύναμο με την επιλογή -a.

Όταν ο τύπος είναι binary, το grep μπορεί να αντιμετωπίσει μη-κειμενικά byte ως τερματιστές γραμμής ακόμη και χωρίς την επιλογή -z. Αυτό σημαίνει ότι η επιλογή μεταξύ binary και text μπορεί να επηρεάσει το αν ένα μοτίβο ταιριάζει σε ένα αρχείο. Για παράδειγμα, όταν ο τύπος είναι binary, το μοτίβο q$ μπορεί να ταιριάζει με το q ακολουθούμενο αμέσως από ένα μηδενικό byte, ακόμη και αν αυτό δεν ταιριάζει όταν ο τύπος είναι text. Αντίθετα, όταν ο τύπος είναι binary, το μοτίβο . (τελεία) μπορεί να μην ταιριάζει με ένα μηδενικό byte.

Προσοχή: Η επιλογή -a μπορεί να παράγει δυαδικά σκουπίδια εξόδου, τα οποία μπορεί να έχουν δυσάρεστες παρενέργειες εάν η έξοδος είναι ένα τερματικό και εάν ο οδηγός του τερματικού ερμηνεύει κάποια από αυτά ως εντολές. Από την άλλη πλευρά, όταν διαβάζετε αρχεία των οποίων οι κωδικοποιήσεις κειμένου είναι άγνωστες, μπορεί να είναι χρήσιμο να χρησιμοποιήσετε την επιλογή -a ή να ορίσετε το LC_ALL='C' στο περιβάλλον, προκειμένου να βρείτε περισσότερες αντιστοιχίες, ακόμη και αν οι αντιστοιχίες αυτές δεν είναι ασφαλείς για απευθείας εμφάνιση.

-D ΔΡΑΣΗ, --devices=ΔΡΑΣΗ
Εάν ένα αρχείο εισόδου είναι μια συσκευή, ένα FIFO ή μια υποδοχή, χρησιμοποιήστε τη ΔΡΑΣΗ για να το επεξεργαστείτε. Από προεπιλογή, η ΔΡΑΣΗ είναι read, που σημαίνει ότι οι συσκευές διαβάζονται σαν να ήταν συνηθισμένα αρχεία. Εάν η ΔΡΑΣΗ είναι skip, οι συσκευές παραλείπονται αθόρυβα.

-d ΔΡΑΣΗ, --directories=ΔΡΑΣΗ
Εάν ένα αρχείο εισόδου είναι ένας κατάλογος, χρησιμοποιήστε τη ΔΡΑΣΗ για να το επεξεργαστείτε. Από προεπιλογή, η ΔΡΑΣΗ είναι read, δηλαδή διαβάστε τους καταλόγους σαν να ήταν συνηθισμένα αρχεία. Εάν η ΔΡΑΣΗ είναι skip, παραλείψτε αθόρυβα τους καταλόγους. Εάν η ΔΡΑΣΗ είναι recurse, διαβάστε όλα τα αρχεία κάτω από κάθε κατάλογο, αναδρομικά, ακολουθώντας τις συμβολικές συνδέσεις μόνο εάν βρίσκονται στην γραμμή εντολών. Αυτό είναι ισοδύναμο με την επιλογή -r.

--exclude=GLOB
Παραλείψτε οποιοδήποτε αρχείο γραμμής εντολών του οποίου το όνομα ταιριάζει με το μοτίβο GLOB, χρησιμοποιώντας αντιστοίχιση χαρακτήρων ελεύθερης μορφής· ένα όνομα καταλήγει είτε είναι ολόκληρο το όνομα, είτε είναι ένα τμήμα που ξεκινά με έναν μη-κόσλο χαρακτήρα αμέσως μετά μια κάθετο (/) στο όνομα. Όταν γίνεται αναζήτηση αναδρομικά, παραλείψτε οποιοδήποτε υποαρχείο του οποίου το βασικό όνομα ταιριάζει με το GLOB· το βασικό όνομα είναι το τμήμα μετά την τελευταία κάθετο. Ένα μοτίβο μπορεί να χρησιμοποιεί *, ?, και [...] ως χαρακτήρες ελεύθερης μορφής, και \ για να αναφέρεται σε έναν χαρακτήρα ελεύθερης μορφής ή μια κάθετο.

--exclude-from=FILE

Παραλείψτε τα αρχεία των οποίων το βασικό όνομα ταιριάζει με οποιοδήποτε από τα glob ονομάτων αρχείων που διαβάζονται από το FILE (χρησιμοποιώντας αντιστοίχιση με σύμβολα joker όπως περιγράφεται στην επιλογή --exclude).

--exclude-dir=GLOB

Παραλείψτε οποιοδήποτε κατάλογο γραμμής εντολών του οποίου το όνομα ταιριάζει με το μοτίβο GLOB. Κατά την αναζήτηση αναδρομικά, παραλείψτε οποιονδήποτε υποκατάλογο του οποίου το βασικό όνομα ταιριάζει με το GLOB. Αγνόησε τυχόν περιττά τελικά κάθετα κάθετα στο GLOB.

-I

Επεξεργαστείτε ένα δυαδικό αρχείο σαν να μην περιείχε δεδομένα αντιστοίχισης. Αυτό ισοδυναμεί με την επιλογή --binary-files=without-match.

--include=GLOB

Αναζητήστε μόνο αρχεία των οποίων το βασικό όνομα ταιριάζει με το GLOB (χρησιμοποιώντας αντιστοίχιση με σύμβολα joker όπως περιγράφεται στην επιλογή --exclude). Εάν δοθούν αντιφατικές επιλογές --include και --exclude, η τελευταία που ταιριάζει κερδίζει. Εάν καμία επιλογή --include ή --exclude δεν ταιριάζει, ένα αρχείο περιλαμβάνεται εκτός εάν η πρώτη τέτοια επιλογή είναι --include.

-r, --recursive

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

-R, --dereference-recursive

Διαβάστε όλα τα αρχεία κάτω από κάθε κατάλογο, αναδρομικά. Ακολουθήστε όλες τις συμβολικές συνδέσεις, σε αντίθεση με την επιλογή -r.

Άλλες επιλογές

--line-buffered

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

-U, --binary

Αντιμετωπίστε τα αρχεία ως δυαδικά. Από προεπιλογή, στα MS-DOS και MS-Windows, το grep υποθέτει εάν ένα αρχείο είναι κείμενο ή δυαδικό, όπως περιγράφεται για την επιλογή --binary-files. Εάν το grep αποφασίσει ότι το αρχείο είναι αρχείο κειμένου, αφαιρεί τους χαρακτήρες CR από το αρχικό περιεχόμενο του αρχείου (για να λειτουργούν σωστά οι κανονικές εκφράσεις με τα ^ και $). Η καθορισμένη επιλογή -U αντικαθιστά αυτήν την εικασία, προκαλώντας την ανάγνωση όλων των αρχείων και τη μεταβίβασή τους στο μηχανισμό αντιστοίχισης κατά λέξη. Εάν το αρχείο είναι ένα αρχείο κειμένου με ζεύγη CR/LF στο τέλος κάθε γραμμής, αυτό θα προκαλέσει την αποτυχία ορισμένων κανονικών εκφράσεων. Αυτή η επιλογή δεν έχει καμία επίδραση σε άλλες πλατφόρμες εκτός από τα MS-DOS και MS-Windows.

-z, --null-data

Αντιμετωπίστε τα δεδομένα εισόδου και εξόδου ως ακολουθίες γραμμών, καθεμία από τις οποίες τερματίζεται με ένα μηδενικό byte (τον χαρακτήρα ASCII NUL) αντί για μια νέα γραμμή. Όπως η επιλογή -Z ή --null, αυτή η επιλογή μπορεί να χρησιμοποιηθεί με εντολές όπως η sort -z για την επεξεργασία αυθαίρετων ονομάτων αρχείων.

ΚΑΝΟΝΙΚΕΣ ΕΚΦΡΑΣΕΙΣ

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

Το grep κατανοεί τρεις διαφορετικές εκδόσεις της σύνταξης κανονικών εκφράσεων: "βασική" (BRE), "εκτεταμένη" (ERE) και "perl" (PCRE). Στο GNU grep, οι βασικές και οι εκτεταμένες κανονικές εκφράσεις είναι απλώς διαφορετικές σημειογραφίες για την ίδια λειτουργία αντιστοίχισης μοτίβων. Σε άλλες υλοποιήσεις, οι βασικές κανονικές εκφράσεις είναι συνήθως λιγότερο ισχυρές από τις εκτεταμένες, αν και κατά καιρούς είναι το αντίθετο. Η ακόλουθη περιγραφή ισχύει για τις εκτεταμένες κανονικές εκφράσεις. Οι διαφορές για τις βασικές κανονικές εκφράσεις συνοψίζονται αργότερα. Οι κανονικές εκφράσεις συμβατές με την Perl έχουν διαφορετική λειτουργικότητα και τεκμηριώνονται στις pcre2syntax(3) και pcre2pattern(3), αλλά λειτουργούν μόνο εάν είναι ενεργοποιημένη η υποστήριξη PCRE.


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

Η τελεία . ταιριάζει με οποιονδήποτε μόνο χαρακτήρα. Δεν καθορίζεται αν ταιριάζει με ένα σφάλμα κωδικοποίησης.

Κλάσεις χαρακτήρων και εκφράσεις σε αγκύλες

Μια έκφραση σε αγκύλες είναι μια λίστα χαρακτήρων που περικλείεται από [ και ]. Ταιριάζει με οποιονδήποτε μόνο χαρακτήρα σε αυτήν τη λίστα. Εάν ο πρώτος χαρακτήρας της λίστας είναι η αγκύλη ^, τότε ταιριάζει με οποιονδήποτε χαρακτήρα που δεν βρίσκεται στη λίστα. δεν καθορίζεται αν ταιριάζει με ένα σφάλμα κωδικοποίησης. Για παράδειγμα, η κανονική έκφραση [0123456789] ταιριάζει με οποιοδήποτε μόνο ψηφίο.

Μέσα σε μια έκφραση σε αγκύλες, μια έκφραση εύρους αποτελείται από δύο χαρακτήρες που διαχωρίζονται με μια παύλα. Στην προεπιλεγμένη τοπική ρύθμιση C, ταιριάζει με οποιονδήποτε μόνο χαρακτήρα που εμφανίζεται μεταξύ των δύο χαρακτήρων με αλφαβητική σειρά ASCII, συμπεριλαμβανομένων των ορίων. Για παράδειγμα, [a-d] είναι ισοδύναμο με [abcd]. Σε άλλες τοπικές ρυθμίσεις, η συμπεριφορά δεν καθορίζεται: το [a-d] μπορεί να είναι ισοδύναμο με [abcd] ή [aBbCcDd] ή κάποια άλλη έκφραση σε αγκύλες, ή μπορεί να μην ταιριάζει με κανέναν χαρακτήρα, ή το σύνολο χαρακτήρων με τους οποίους ταιριάζει μπορεί να είναι ακανόνιστο ή μπορεί να είναι μη έγκυρο. Για να αποκτήσετε την παραδοσιακή ερμηνεία των εκφράσεων σε αγκύλες, μπορείτε να χρησιμοποιήσετε την τοπική ρύθμιση C, ορίζοντας τη μεταβλητή περιβάλλοντος LC_ALL στην τιμή C.

Τέλος, ορισμένες ονομαστικές κλάσεις χαρακτήρων είναι προκαθορισμένες μέσα στις εκφράσεις σε αγκύλες, ως εξής. Τα ονόματά τους είναι αυτοεπεξηγητικά και είναι τα: [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] και [:xdigit:]. Για παράδειγμα, το [[:alnum:]] σημαίνει την κλάση χαρακτήρων των αριθμών και των γραμμάτων στην τρέχουσα τοπική ρύθμιση. Στην τοπική ρύθμιση C και την κωδικοποίηση συνόλου χαρακτήρων ASCII, αυτό είναι το ίδιο με το [0-9A-Za-z]. (Σημειώστε ότι οι αγκύλες σε αυτά τα ονομαστικά σύμβολα αποτελούν μέρος των συμβολικών ονομάτων και πρέπει να συμπεριλαμβάνονται επιπλέον των αγκυλών που ορίζουν την έκφραση σε αγκύλες.) Οι περισσότεροι μετα-χαρακτήρες χάνουν την ειδική τους σημασία μέσα στις εκφράσεις σε αγκύλες. Για να συμπεριλάβετε ένα κυριολεκτικό ], τοποθετήστε το πρώτο στη λίστα. Ομοίως, για να συμπεριλάβετε ένα κυριολεκτικό ^, τοποθετήστε το οπουδήποτε εκτός από το πρώτο. Τέλος, για να συμπεριλάβετε ένα κυριολεκτικό -, τοποθετήστε το τελευταίο.

Άγκυρες

Η αγκύλη ^ και το σύμβολο του δολαρίου $ είναι μετα-χαρακτήρες που ταιριάζουν, αντίστοιχα, με την κενή συμβολοσειρά στην αρχή και στο τέλος μιας γραμμής.

Ο χαρακτήρας ανάστροφης κάθετου και οι ειδικές εκφράσεις

Τα σύμβολα \< και \> ταιριάζουν, αντίστοιχα, με την κενή συμβολοσειρά στην αρχή και στο τέλος μιας λέξης. Το σύμβολο \b ταιριάζει με την κενή συμβολοσειρά στο άκρο μιας λέξης και το \B ταιριάζει με την κενή συμβολοσειρά, υπό την προϋπόθεση ότι δεν βρίσκεται στο άκρο μιας λέξης. Το σύμβολο \w είναι συνώνυμο του [_[:alnum:]] και το \W είναι συνώνυμο του [^_[:alnum:]].


Επανάληψη

Μια κανονική έκφραση μπορεί να ακολουθείται από έναν από τους παρακάτω τελεστές επανάληψης: ? Η προηγούμενη στοιχείο είναι προαιρετικό και ταιριάζει το πολύ μία φορά. * Το προηγούμενο στοιχείο θα ταιριάζει μηδέν ή περισσότερες φορές. + Το προηγούμενο στοιχείο θα ταιριάζει μία ή περισσότερες φορές. {n} Το προηγούμενο στοιχείο ταιριάζει ακριβώς n φορές. {n,} Το προηγούμενο στοιχείο ταιριάζει n ή περισσότερες φορές. {,m} Το προηγούμενο στοιχείο ταιριάζει το πολύ m φορές. Αυτή είναι μια επέκταση GNU. {n,m} Το προηγούμενο στοιχείο ταιριάζει τουλάχιστον n φορές, αλλά όχι περισσότερες από m φορές.

Σύνδεση

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

Εναλλαγή

Δύο κανονικές εκφράσεις μπορούν να ενωθούν με τον τελεστή infix |· η προκύπτουσα κανονική έκφραση ταιριάζει σε οποιαδήποτε συμβολοσειρά που ταιριάζει σε οποιαδήποτε από τις εναλλασσόμενες εκφράσεις.

Προτεραιότητα

Η επανάληψη έχει προτεραιότητα έναντι της σύνδεσης, η οποία με τη σειρά της έχει προτεραιότητα έναντι της εναλλαγής. Μια ολόκληρη έκφραση μπορεί να περικλείεται σε παρενθέσεις για να αντικαταστήσει αυτούς τους κανόνες προτεραιότητας και να σχηματίσει ένα υποέκφραση.

Αναφορές και Υποεκφράσεις

Η αναφορά \n, όπου το n είναι ένα μόνο ψηφίο, ταιριάζει στην υποσυμβολοσειρά που ταιριάζει προηγουμένως με την n-οστή ομαδοποιημένη υποέκφραση της κανονικής έκφρασης.

Βασικές έναντι Επεκτεταμένων Κανονικών Εκφράσεων

Στις βασικές κανονικές εκφράσεις, τα μετα-χαρακτήρες ?, +, {, |, (, και ) χάνουν τη ειδική τους σημασία· αντίθετα, χρησιμοποιήστε τις εκδόσεις με αντικλίνουσα τελεία \?, +, {, |, (.

ΚΑΤΑΣΤΑΣΗ ΕΞΟΔΟΥ

Κανονικά, η κατάσταση εξόδου είναι 0 εάν επιλεγεί μια γραμμή, 1 εάν δεν επιλέχθηκαν γραμμές και 2 εάν προέκυψε σφάλμα. Ωστόσο, εάν χρησιμοποιηθεί η επιλογή -q ή --quiet ή --silent και επιλεγεί μια γραμμή, η κατάσταση εξόδου είναι 0 ακόμη και αν προέκυψε σφάλμα.

ΠΕΡΙΒΑΛΛΟΝ

Η συμπεριφορά του grep επηρεάζεται από τις ακόλουθες μεταβλητές περιβάλλοντος.

Η τοπική ρύθμιση για την κατηγορία LC_foo καθορίζεται εξετάζοντας τις τρεις μεταβλητές περιβάλλοντος LC_ALL, LC_foo, LANG, κατά αυτή τη σειρά. Η πρώτη από αυτές τις μεταβλητές που έχει οριστεί καθορίζει την τοπική ρύθμιση. Για παράδειγμα, εάν το LC_ALL δεν έχει οριστεί, αλλά το LC_MESSAGES έχει οριστεί σε pt_BR, τότε η τοπική ρύθμιση της Πορτογαλικής Βραζιλίας χρησιμοποιείται για την κατηγορία LC_MESSAGES. Η τοπική ρύθμιση C χρησιμοποιείται εάν καμία από αυτές τις μεταβλητές περιβάλλοντος δεν έχει οριστεί, εάν το τοπικό κατάλογο δεν έχει εγκατασταθεί ή εάν το grep δεν έχει μεταγλωττιστεί με υποστήριξη για εθνικές γλώσσες (NLS). Η εντολή shell locale -a εμφανίζει τις τοπικές ρυθμίσεις που είναι προς το παρόν διαθέσιμες.

GREP_COLORS

Ελέγχει τον τρόπο με τον οποίο η επιλογή --color τονίζει την έξοδο. Η τιμή του είναι μια λίστα διαχωρισμένη με άνω και κάτω τελεία από τις δυνατότητες που από προεπιλογή είναι ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 με τις δυαδικές δυνατότητες rv και ne που παραλείπονται (δηλαδή, ψευδείς). Οι υποστηριζόμενες δυνατότητες είναι οι ακόλουθες.


sl= Υποσυμβολοσειρά SGR για ολόκληρες τις επιλεγμένες γραμμές (δηλαδή, για τις γραμμές που ταιριάζουν όταν η επιλογή γραμμής εντολών -v παραλείπεται, ή για τις γραμμές που δεν ταιριάζουν όταν καθορίζεται η επιλογή -v). Ωστόσο, εάν η τιμή boolean rv και η επιλογή γραμμής εντολών -v καθοριστούν και οι δύο, εφαρμόζεται στις γραμμές συμφραζομένων που ταιριάζουν. Η προεπιλογή είναι κενή (δηλαδή, το προεπιλεγμένο ζεύγος χρωμάτων του τερματικού).

cx= Υποσυμβολοσειρά SGR για ολόκληρες τις γραμμές συμφραζομένων (δηλαδή, για τις γραμμές που δεν ταιριάζουν όταν η επιλογή γραμμής εντολών -v παραλείπεται, ή για τις γραμμές που ταιριάζουν όταν καθορίζεται η επιλογή -v). Ωστόσο, εάν η τιμή boolean rv και η επιλογή γραμμής εντολών -v καθοριστούν και οι δύο, εφαρμόζεται στις επιλεγμένες γραμμές που δεν ταιριάζουν. Η προεπιλογή είναι κενή (δηλαδή, το προεπιλεγμένο ζεύγος χρωμάτων του τερματικού).

rv  Τιμή boolean που αντιστρέφει (αντικαθιστά) τις σημασίες των δυνατοτήτων sl= και cx= όταν καθορίζεται η επιλογή γραμμής εντολών -v. Η προεπιλογή είναι false (δηλαδή, η δυνατότητα παραλείπεται).

mt=01;31
Υποσυμβολοσειρά SGR για τμήματα κειμένου που ταιριάζουν σε οποιαδήποτε γραμμή που ταιριάζει (δηλαδή, μια επιλεγμένη γραμμή όταν η επιλογή γραμμής εντολών -v παραλείπεται, ή μια γραμμή συμφραζομένων όταν καθορίζεται η επιλογή -v). Η ρύθμιση αυτού είναι ισοδύναμη με τη ρύθμιση τόσο των ms= όσο και των mc= ταυτόχρονα στην ίδια τιμή. Η προεπιλογή είναι ένα έντονο κόκκινο προσκήνιο κειμένου πάνω από το τρέχον χρώμα φόντου γραμμής.

ms=01;31
Υποσυμβολοσειρά SGR για τμήματα κειμένου που ταιριάζουν σε μια επιλεγμένη γραμμή. (Αυτό χρησιμοποιείται μόνο όταν η επιλογή γραμμής εντολών -v παραλείπεται.) Η επίδραση της δυνατότητας sl= (ή cx= εάν υπάρχει rv) παραμένει ενεργή όταν αυτό αρχίζει να λειτουργεί. Η προεπιλογή είναι ένα έντονο κόκκινο προσκήνιο κειμένου πάνω από το τρέχον χρώμα φόντου γραμμής.

mc=01;31
Υποσυμβολοσειρά SGR για τμήματα κειμένου που ταιριάζουν σε μια γραμμή συμφραζομένων. (Αυτό χρησιμοποιείται μόνο όταν η επιλογή γραμμής εντολών -v καθορίζεται.) Η επίδραση της δυνατότητας cx= (ή sl= εάν υπάρχει rv) παραμένει ενεργή όταν αυτό αρχίζει να λειτουργεί. Η προεπιλογή είναι ένα έντονο κόκκινο προσκήνιο κειμένου πάνω από το τρέχον χρώμα φόντου γραμμής.

fn=35   Υποσυμβολοσειρά SGR για ονόματα αρχείων που προθέτουν οποιαδήποτε γραμμή περιεχομένου. Η προεπιλογή είναι ένα ματζέντα προσκήνιο κειμένου πάνω από το προεπιλεγμένο χρώμα φόντου του τερματικού.

ln=32   Υποσυμβολοσειρά SGR για αριθμούς γραμμών που προθέτουν οποιαδήποτε γραμμή περιεχομένου. Η προεπιλογή είναι ένα πράσινο προσκήνιο κειμένου πάνω από το προεπιλεγμένο χρώμα φόντου του τερματικού.

bn=32   Υποσυμβολοσειρά SGR για μετατοπίσεις byte που προθέτουν οποιαδήποτε γραμμή περιεχομένου. Η προεπιλογή είναι ένα πράσινο προσκήνιο κειμένου πάνω από το προεπιλεγμένο χρώμα φόντου του τερματικού.

se=36   Υποσυμβολοσειρά SGR για διαχωριστικά που εισάγονται μεταξύ των επιλεγμένων πεδίων γραμμής (:), μεταξύ των πεδίων γραμμής συμφραζομένων (-) και μεταξύ των ομάδων παρακείμενων γραμμών όταν καθορίζεται μη μηδενικό περιβάλλον (--). Η προεπιλογή είναι ένα κυανό προσκήνιο κειμένου πάνω από το προεπιλεγμένο χρώμα φόντου του τερματικού.

ne  Τιμή boolean που αποτρέπει την εκκαθάριση μέχρι το τέλος της γραμμής χρησιμοποιώντας τη λειτουργία Erase in Line (EL) κάθε φορά που τελειώνει ένα χρωματισμένο στοιχείο. Αυτό είναι απαραίτητο σε τερματικά στα οποία η λειτουργία EL δεν υποστηρίζεται. Επίσης, είναι χρήσιμο σε τερματικά για τα οποία η δυνατότητα boolean terminfo back_color_erase (bce) δεν ισχύει, όταν τα επιλεγμένα χρώματα δεν επηρεάζουν το φόντο ή όταν η λειτουργία EL είναι πολύ αργή ή προκαλεί υπερβολικό τρεμόπαιγμα. Η προεπιλογή είναι false (δηλαδή, η δυνατότητα παραλείπεται).

Σημειώστε ότι οι λογικές δυνατότητες δεν έχουν μέρος =.... Αποκλείονται (δηλαδή, είναι ψευδείς) από προεπιλογή και γίνονται αληθείς όταν καθορίζονται.

Δείτε την ενότητα "Επιλογή Γραφικής Απόδοσης (SGR)" στην τεκμηρίωση του τερματικού κειμένου που χρησιμοποιείται για τις επιτρεπόμενες τιμές και τη σημασία τους ως χαρακτηριστικά χαρακτήρων. Αυτές οι τιμές υποσυμβολοσειράς είναι ακέραιοι αριθμοί σε δεκαδική αναπαράσταση και μπορούν να συνενωθούν με ερωτηματικά. Το grep φροντίζει για τη συναρμολόγηση του αποτελέσματος σε μια πλήρη ακολουθία SGR (\33[...m). Οι κοινές τιμές που μπορούν να συνενωθούν περιλαμβάνουν το 1 για έντονη γραφή, το 4 για υπογράμμιση, το 5 για αναβοσβήσιμο, το 7 για αντίστροφο, το 39 για προεπιλεγμένο χρώμα προσκηνίου, το 30 έως το 37 για χρώματα προσκηνίου, το 90 έως το 97 για χρώματα προσκηνίου σε λειτουργία 16 χρωμάτων, το 38;5;0 έως 38;5;255 για χρώματα προσκηνίου σε λειτουργίες 88 χρωμάτων και 256 χρωμάτων, το 49 για προεπιλεγμένο χρώμα φόντου, το 40 έως το 47 για χρώματα φόντου, το 100 έως το 107 για χρώματα φόντου σε λειτουργία 16 χρωμάτων και το 48;5;0 έως 48;5;255 για χρώματα φόντου σε λειτουργίες 88 χρωμάτων και 256 χρωμάτων.

LC_ALL, LC_COLLATE, LANG

Αυτές οι μεταβλητές καθορίζουν την τοπική ρύθμιση για την κατηγορία LC_COLLATE, η οποία καθορίζει την ακολουθία ταξινόμησης που χρησιμοποιείται για την ερμηνεία εκφράσεων εύρους όπως το [a-z].

LC_ALL, LC_CTYPE, LANG

Αυτές οι μεταβλητές καθορίζουν την τοπική ρύθμιση για την κατηγορία LC_CTYPE, η οποία καθορίζει τον τύπο των χαρακτήρων, π.χ., ποιοι χαρακτήρες είναι κενά. Αυτή η κατηγορία καθορίζει επίσης την κωδικοποίηση χαρακτήρων, δηλαδή, εάν το κείμενο κωδικοποιείται σε UTF-8, ASCII ή κάποια άλλη κωδικοποίηση. Στην τοπική ρύθμιση C ή POSIX, όλοι οι χαρακτήρες κωδικοποιούνται ως ένας μόνο byte και κάθε byte είναι έγκυρος χαρακτήρας.

LC_ALL, LC_MESSAGES, LANG

Αυτές οι μεταβλητές καθορίζουν την τοπική ρύθμιση για την κατηγορία LC_MESSAGES, η οποία καθορίζει τη γλώσσα που χρησιμοποιεί το grep για τα μηνύματα. Η προεπιλεγμένη τοπική ρύθμιση C χρησιμοποιεί μηνύματα στην αμερικανική αγγλική.

POSIXLY_CORRECT

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

ΣΗΜΕΙΩΣΕΙΣ

Αυτή η σελίδα man συντηρείται μόνο κατά διαστήματα. η πλήρης τεκμηρίωση είναι συχνά πιο ενημερωμένη.

ΠΝΕΥΜΑΤΙΚΑ ΔΙΚΑΙΩΜΑΤΑ

Πνευματικά Δικαιώματα 1998–2000, 2002, 2005–2025, Ίδρυμα Ελεύθερου Λογισμικού, Inc.

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


ΣΦΑΛΜΑΤΑ

Αναφορά Σφαλμάτων

Αποστείλετε αναφορές σφαλμάτων στη διεύθυνση αναφοράς σφαλμάτων. Διατίθεται ένα αρχείο email και ένα σύστημα παρακολούθησης σφαλμάτων.

Γνωστά Σφάλματα

Μεγάλες επαναλήψεις στην κατασκευή {n,m} ενδέχεται να προκαλέσουν την υπερβολική χρήση μνήμης από το grep. Επιπλέον, ορισμένες άλλες περίπλοκες κανονικές εκφράσεις απαιτούν εκθετικό χρόνο και χώρο και ενδέχεται να προκαλέσουν την εξάντληση της μνήμης από το grep.

Οι αναδρομικές αναφορές είναι πολύ αργές και ενδέχεται να απαιτούν εκθετικό χρόνο.

ΠΑΡΑΔΕΙΓΜΑ

Το ακόλουθο παράδειγμα εμφανίζει τη θέση και το περιεχόμενο οποιασδήποτε γραμμής που περιέχει το "f" και τελειώνει με ".c", σε όλα τα αρχεία στον τρέχοντα κατάλογο, των οποίων τα ονόματα περιέχουν το "g" και τελειώνουν με ".h". Η επιλογή -n εμφανίζει τους αριθμούς γραμμών, η επιλογή -- αντιμετωπίζει τις επεκτάσεις του "*g*.h" που ξεκινούν με "-" ως ονόματα αρχείων και όχι ως επιλογές, και το άδειο αρχείο /dev/null προκαλεί την εμφάνιση των ονομάτων αρχείων ακόμη και αν εμφανίζεται μόνο ένα όνομα αρχείου της μορφής "*g*.h".

$ grep -n -- 'f.*\.c$' *g*.h /dev/null
argmatch.h:1:/* ορισμοί και πρωτότυπα για το argmatch.c

Η μόνη γραμμή που ταιριάζει είναι η γραμμή 1 του argmatch.h. Σημειώστε ότι η σύνταξη κανονικών εκφράσεων που χρησιμοποιείται στο μοτίβο διαφέρει από τη σύνταξη globbing που χρησιμοποιεί το κέλυφος για την αντιστοίχιση ονομάτων αρχείων.

ΔΕΣ ΕΠΙΣΗΣ

Κανονικές Σελίδες Εγχειριδίου

awk(1), cmp(1), diff(1), find(1), perl(1), sed(1), sort(1), xargs(1), read(2), pcre2(3), pcre2syntax(3), pcre2pattern(3), terminfo(5), glob(7), regex(7)

Πλήρης Τεκμηρίωση

Ένα πλήρες εγχειρίδιο είναι διαθέσιμο. Εάν τα προγράμματα info και grep είναι σωστά εγκατεστημένα στην τοποθεσία σας, η εντολή

info grep

θα πρέπει να σας δώσει πρόσβαση στο πλήρες εγχειρίδιο.