Κανονικές εκφράσεις στο Unix
Σε πολλά εργαλεία του Unix
οι κανονικές εκφράσεις επιτρέπουν τον ορισμό σύνθετων συμβολοσειρών με
δηλωτικό τρόπο.
Η εντολή egrep επιτρέπει την αναζήτηση γραμμών που ικανοποιούν μια κανονική
έκφραση μέσα σε ένα αρχείο.
Τα παρακάτω σύμβολα έχουν ειδικό νόημα:
- ^
- Αρχή της γραμμής
- $
- Τέλος της γραμμής
- .
- Οποιοδήποτε γράμμα
- [abc]
- Ένα από τα γράμματα a, b, ή c
- [a-z]
- Ένα από τα γράμματα a μέχρι z
- [^abc]
- Οποιοδήποτε γράμμα εκτός από τα a, b, και c.
- Έκφραση*
- Η έκφραση μηδέν ή περισσότερες φορές
- Έκφραση+
- Η έκφραση μία ή περισσότερες φορές
- Έκφραση?
- Η έκφραση μία ή καμία φορά
- Έκφραση1|Έκφραση1
- Η έκφραση1 ή η έκφραση2
- (Έκφραση)
- Το περιεχόμενο στην παρένθεση
Παράδειγμα:
(με την εντολή cd ~dspin φτάνετε σε έναν κατάλογο που περιέχει ένα αρχείο με πολλές λέξεις (words))
athena:~> egrep 'abo' words
...
sabotage
seaboard
taboo
thereabouts
turnabout
vagabond
whereabout
...
athena:~> egrep '^abo' words
aboard
abode
abolish
abolition
abominable
abominate
aboriginal
athena:~> egrep bent words
absorbent
bent
benthic
debenture
incumbent
recumbent
athena:~> egrep 'bent$' words
absorbent
bent
incumbent
recumbent
athena:~> egrep "heaven|hell" words
eggshell
heaven
heavenly
heavens
hell
hellfire
hellish
hello
hells
...
athena:~> egrep "(ga)(ba)+" words
gabardine
megabaud
athena:~> egrep pe+l words
..
peel
peeled
...