Τι είναι οι κανονικές εκφράσεις Linux;
Οι Linux Regular Expressions είναι ειδικοί χαρακτήρες που βοηθούν στην αναζήτηση δεδομένων και την αντιστοίχιση σύνθετων μοτίβων. Οι τυπικές εκφράσεις συντομεύονται ως «regexp» ή «regex». Χρησιμοποιούνται σε πολλά προγράμματα Linux όπως grep, bash, rename, sed κ.λπ.
Τύποι τυπικών εκφράσεων
Για ευκολία κατανόησης ας μάθουμε τους διαφορετικούς τύπους Regex ένας προς έναν.
- Βασικές τυπικές εκφράσεις
- Διάστημα Κανονικές εκφράσεις
- Εκτεταμένες τυπικές εκφράσεις
- Περίληψη
Κάντε κλικ εδώ εάν το βίντεο δεν είναι προσβάσιμο
Βασικές τυπικές εκφράσεις
Ορισμένες από τις κοινώς χρησιμοποιούμενες εντολές με κανονικές εκφράσεις είναι tr, sed, vi και grep. Παρακάτω αναφέρονται μερικά από τα βασικά Regex.
Σύμβολο | Περιγραφές |
---|---|
. | αντικαθιστά οποιονδήποτε χαρακτήρα |
ταιριάζει με την αρχή της συμβολοσειράς | |
$ | ταιριάζει στο τέλος της συμβολοσειράς |
* | ταιριάζει με μηδέν ή περισσότερες φορές τον προηγούμενο χαρακτήρα |
\ | Αντιπροσωπεύστε ειδικούς χαρακτήρες |
() | Ομαδοποιεί τις κανονικές εκφράσεις |
; | Ταιριάζει ακριβώς με έναν χαρακτήρα |
Ας δούμε ένα παράδειγμα.
Εκτελέστε δείγμα γάτας για να δείτε τα περιεχόμενα ενός υπάρχοντος αρχείου
Αναζήτηση περιεχομένου που περιέχει το γράμμα «a».
Το « ^ » αντιστοιχεί στην αρχή μιας συμβολοσειράς. Ας αναζητήσουμε περιεχόμενο που ξεκινά με ένα
Φιλτράρονται μόνο οι γραμμές που ξεκινούν με χαρακτήρα. Οι γραμμές που δεν περιέχουν τον χαρακτήρα «a» στην αρχή αγνοούνται.
Ας δούμε ένα άλλο παράδειγμα -
Επιλέξτε μόνο εκείνες τις γραμμές που τελειώνουν με t χρησιμοποιώντας $
Διάστημα Κανονικές εκφράσεις
Αυτές οι εκφράσεις μας λένε για τον αριθμό των εμφανίσεων ενός χαρακτήρα σε μια συμβολοσειρά. Αυτοί είναι
Εκφραση | Περιγραφή |
---|---|
{ν} |
Ταιριάζει με τον προηγούμενο χαρακτήρα που εμφανίζεται ακριβώς «n» φορές |
{ν, μ} | Ταιριάζει με τον προηγούμενο χαρακτήρα που εμφανίζεται «n» φορές αλλά όχι περισσότερο από m |
{ν,} | Ταιριάζει με τον προηγούμενο χαρακτήρα μόνο όταν εμφανίζεται «n» φορές ή περισσότερο |
Παράδειγμα:
Φιλτράρετε όλες τις γραμμές που περιέχουν τον χαρακτήρα 'p'
Θέλουμε να ελέγξουμε ότι ο χαρακτήρας 'p' εμφανίζεται ακριβώς 2 φορές σε μια σειρά μετά το άλλο. Γι 'αυτό η σύνταξη θα ήταν:
cat sample | grep -E p\{2}
Σημείωση: Πρέπει να προσθέσετε -E με αυτές τις κανονικές εκφράσεις.
Εκτεταμένες τυπικές εκφράσεις
Αυτές οι κανονικές εκφράσεις περιέχουν συνδυασμούς περισσότερων από μία εκφράσεων. Κάποιοι από αυτούς είναι:
Εκφραση | Περιγραφή |
---|---|
\ + |
Ταιριάζει με μία ή περισσότερες εμφανίσεις του προηγούμενου χαρακτήρα |
\; |
Ταιριάζει με μηδέν ή μία εμφάνιση του προηγούμενου χαρακτήρα |
Παράδειγμα:
Αναζήτηση για όλους τους χαρακτήρες 't'
Ας υποθέσουμε ότι θέλουμε να φιλτράρουμε τις γραμμές όπου ο χαρακτήρας "a" προηγείται του χαρακτήρα "t"
Μπορούμε να χρησιμοποιήσουμε την εντολή όπως
cat sample|grep "a\+t"
Επέκταση στήριξης
Η σύνταξη για επέκταση αγκύλης είναι είτε μια ακολουθία είτε μια λίστα στοιχείων που διαχωρίζονται με κόμμα μέσα σε σγουρά αγκύλες "{}". Τα στοιχεία έναρξης και λήξης σε μια ακολουθία διαχωρίζονται με δύο τελείες "…".
Μερικά παραδείγματα:
Στα παραπάνω παραδείγματα, η εντολή echo δημιουργεί συμβολοσειρές χρησιμοποιώντας την επέκταση στήριξης.
Περίληψη:
- Οι τυπικές εκφράσεις είναι ένα σύνολο χαρακτήρων που χρησιμοποιούνται για τον έλεγχο μοτίβων σε συμβολοσειρές
- Ονομάζονται επίσης «regexp» και «regex»
- Είναι σημαντικό να μάθετε τακτικές εκφράσεις για τη συγγραφή σεναρίων
- Μερικές βασικές τυπικές εκφράσεις είναι:
Σύμβολο | Περιγραφές |
---|---|
. | αντικαθιστά οποιονδήποτε χαρακτήρα |
ταιριάζει με την αρχή της συμβολοσειράς | |
$ | ταιριάζει στο τέλος της συμβολοσειράς |
- Ορισμένες εκτεταμένες κανονικές εκφράσεις είναι:
Εκφραση | Περιγραφή |
---|---|
\ + | Ταιριάζει με μία ή περισσότερες εμφανίσεις του προηγούμενου χαρακτήρα |
\; | Ταιριάζει με μηδέν ή μία εμφάνιση του προηγούμενου χαρακτήρα |
- Μερικές κανονικές εκφράσεις διαστήματος είναι:
Εκφραση | Περιγραφή |
---|---|
{ν} | Ταιριάζει με τον προηγούμενο χαρακτήρα που εμφανίζεται ακριβώς «n» φορές |
{ν, μ} | Ταιριάζει με τον προηγούμενο χαρακτήρα που εμφανίζεται «n» φορές αλλά όχι περισσότερο από m |
{ν,} | Ταιριάζει με τον προηγούμενο χαρακτήρα μόνο όταν εμφανίζεται «n» φορές ή περισσότερο |
- Η επέκταση στηρίγματος χρησιμοποιείται για τη δημιουργία χορδών. Βοηθά στη δημιουργία πολλαπλών χορδών από μία.