Linux Regular Expression Tutorial: Grep Regex Example

Τι είναι οι κανονικές εκφράσεις Linux;

Κανονικές εκφράσεις Linux είναι ειδικοί χαρακτήρες που βοηθούν τα δεδομένα αναζήτησης και την αντιστοίχιση complex μοτίβα. Οι τυπικές εκφράσεις συντομεύονται ως "regexp" ή "regex". Χρησιμοποιούνται σε πολλά προγράμματα Linux όπως grep, bash, μετονομασία, sed κ.λπ.

Τύποι κανονικών εκφράσεων

Για ευκολία κατανόησης, ας μάθουμε τους διαφορετικούς τύπους Regex έναν προς έναν.

Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο

Βασικές κανονικές εκφράσεις

Μερικές από τις εντολές που χρησιμοποιούνται συνήθως με κανονικές εκφράσεις είναι οι tr, sed, vi και grep. Παρακάτω παρατίθενται μερικά από τα βασικά Regex.

Σύμβολο Περιγραφές
. αντικαθιστά οποιονδήποτε χαρακτήρα
^ αγώνες αρχή της χορδής
$ ταιριάζει στο τέλος της χορδής
* ταιριάζει μηδέν ή περισσότερες φορές τον προηγούμενο χαρακτήρα
\ Αναπαριστά ειδικούς χαρακτήρες
() Ομαδοποιεί κανονικές εκφράσεις
? Ταιριάζει ακριβώς με έναν χαρακτήρα

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

Εκτελέστε δείγμα γάτας για να δείτε τα περιεχόμενα ενός υπάρχοντος αρχείου

Βασικές κανονικές εκφράσεις

Αναζήτηση περιεχομένου που περιέχει το γράμμα «a».

Βασικές κανονικές εκφράσεις

»^' ταιριάζει με την αρχή μιας συμβολοσειράς. Ας αναζητήσουμε περιεχόμενο που ΑΡΧΙΖΕΙ με α

Βασικές κανονικές εκφράσεις

Μόνο οι γραμμές που ξεκινούν με χαρακτήρα φιλτράρονται. Οι γραμμές που δεν περιέχουν τον χαρακτήρα 'a' στην αρχή αγνοούνται.

Ας δούμε ένα άλλο παράδειγμα -

Βασικές κανονικές εκφράσεις

Επιλέξτε μόνο εκείνες τις γραμμές που τελειώνουν με t χρησιμοποιώντας $

Βασικές κανονικές εκφράσεις

Διάστημα Κανονικές εκφράσεις

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

Έκφραση Περιγραφή
{δεν} Ταιριάζει ακριβώς με τον προηγούμενο χαρακτήρα που εμφανίζεται «n» φορές
{n,m} Ταιριάζει με τον προηγούμενο χαρακτήρα που εμφανίζεται 'n' φορές αλλά όχι περισσότερο από m
{n, } Ταιριάζει με τον προηγούμενο χαρακτήρα μόνο όταν εμφανίζεται 'n' φορές ή περισσότερες

Παράδειγμα:

Φιλτράρετε όλες τις γραμμές που περιέχουν τον χαρακτήρα 'p'

Διάστημα Κανονικές εκφράσεις

Θέλουμε να ελέγξουμε ότι ο χαρακτήρας 'p' εμφανίζεται ακριβώς 2 φορές σε μια συμβολοσειρά η μία μετά την άλλη. Για αυτό η σύνταξη θα ήταν:

cat sample | grep -E p\{2}

Διάστημα Κανονικές εκφράσεις

Σημείωση: Πρέπει να προσθέσετε -E με αυτές τις κανονικές εκφράσεις.

Εκτεταμένες κανονικές εκφράσεις

Αυτές οι κανονικές εκφράσεις περιέχουν συνδυασμούς περισσότερων από μία εκφράσεων. Κάποιοι από αυτούς είναι:

Έκφραση Περιγραφή
\+ Ταιριάζει με μία ή περισσότερες εμφανίσεις του προηγούμενου χαρακτήρα
\? Ταιριάζει με μηδέν ή μία εμφάνιση του προηγούμενου χαρακτήρα

Παράδειγμα:

Searching για όλους τους χαρακτήρες 't'

Εκτεταμένες κανονικές εκφράσεις

Ας υποθέσουμε ότι θέλουμε να φιλτράρουμε τις γραμμές όπου ο χαρακτήρας 'a' προηγείται του χαρακτήρα 't'

Μπορούμε να χρησιμοποιήσουμε την εντολή όπως

cat sample|grep "a\+t"

Εκτεταμένες κανονικές εκφράσεις

Επέκταση του νάρθηκα

Η σύνταξη για την επέκταση αγκύλων είναι είτε μια ακολουθία είτε μια λίστα στοιχείων διαχωρισμένων με κόμματα μέσα στα σγουρά άγκιστρα "{}". Τα στοιχεία έναρξης και λήξης σε μια ακολουθία χωρίζονται με δύο τελείες «..».

Μερικά παραδείγματα:

Επέκταση του νάρθηκα

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

Περίληψη:

  • Οι κανονικές εκφράσεις είναι ένα σύνολο χαρακτήρων που χρησιμοποιούνται για τον έλεγχο μοτίβων σε συμβολοσειρές
  • Ονομάζονται επίσης "regexp" και "regex"
  • Είναι σημαντικό να μάθετε κανονικές εκφράσεις για τη σύνταξη σεναρίων
  • Μερικές βασικές κανονικές εκφράσεις είναι:
Σύμβολο Περιγραφές
. αντικαθιστά οποιονδήποτε χαρακτήρα
^ αγώνες αρχή της χορδής
$ ταιριάζει στο τέλος της χορδής
  • Μερικές εκτεταμένες κανονικές εκφράσεις είναι:
Έκφραση Περιγραφή

\+

Ταιριάζει με μία ή περισσότερες εμφανίσεις του προηγούμενου χαρακτήρα
\? Ταιριάζει με μηδέν ή μία εμφάνιση του προηγούμενου χαρακτήρα
  • Μερικές κανονικές εκφράσεις διαστήματος είναι:
Έκφραση Περιγραφή
{δεν} Ταιριάζει ακριβώς με τον προηγούμενο χαρακτήρα που εμφανίζεται «n» φορές
{n,m} Ταιριάζει με τον προηγούμενο χαρακτήρα που εμφανίζεται 'n' φορές αλλά όχι περισσότερο από m
{n, } Ταιριάζει με τον προηγούμενο χαρακτήρα μόνο όταν εμφανίζεται 'n' φορές ή περισσότερες
  • Η επέκταση του βραχίονα χρησιμοποιείται για τη δημιουργία χορδών. Βοηθά στη δημιουργία πολλαπλών χορδών από μία.