A Zeph Grunschlag
egrep a “Extended Global Regular Expressions Print” rövidítése. Ez egy olyan program, amely egy megadott fájlt sorról sorra átvizsgál, és visszaadja azokat a sorokat, amelyek egy adott reguláris kifejezésnek megfelelő mintát tartalmaznak.
A standard egrep parancs így néz ki:
egrep<flags> ‘<regularexpression>’ <filename>
Az általános flagek a következők: -c a sikeres találatok számolásához, és nem a tényleges találatok kinyomtatásához, -i a keresés case-függetlenné tételéhez, -n a sorszám kiírásához minden egyes találat kiírása előtt, -v a reguláris kifejezés komplementjének (azaz a nem megfelelő sorok visszaadásához), és -l a kifejezésnek megfelelő sorokat tartalmazó fájlok fájlneveinek kinyomtatásához.
A reguláris kifejezéseknek saját egrep változatuk van (ez nagyon hasonlít az emacsben, perlben stb. található reguláris kifejezésekhez.)
(A görög ε (epsilon) betű az üres karakterláncot jelöli)
Az egrep reguláris kifejezések és az elméleti reguláris kifejezések közötti egyik fő különbség az, hogy az egrep-ben a találatok a karakterlánc bármelyikében előfordulhatnak, míg az elméleti használatban a találatok mindig a karakterlánc első karakterétől indulnak és az utolsó karakterrel végződnek. Vegyük például a 000001000 karakterláncot.Az egrepben a 010 szabályos kifejezés megfelel; az elméleti 010 szabályos kifejezés viszont nem felel meg a 000001000-nek, mivel a 010 és a 000001000 nem egyenlő. Az egrep 010 elméleti megfelelője a (0+1)*010(0+1)*. Mi van akkor, ha valóban figyelembe akarjuk venni a karakterláncok elejét és végét? Az egre a kezdet megadásához a ^ pont szimbólumot, a véghez pedig a $ dollár szimbólumot adja meg. Tehát az elméleti 010 egrep megfelelője a ^010$ .
Egy másik hasznos egreps szimbólumpár a \< és \> szóhatárok, amelyek a szó elejét és végét jelölik.
Karakterek halmazának vagy tartományának megadásához használjuk a zárójeleket. A halmaz kijelöléséhez használjuk a ^ kalap szimbólumot az első karakterként. Például
- a { a, 9, A, 0, 5 } halmaz.
- a kiegészítő ASCII – { a, 9, A, 0, 5 } készlet. (minden, kivéve a, 9, A, 0 és 5).
- az összes kisbetűs betű { a, b, c, d, …, z }
- az összes ASCII betű halmaza, kivéve a kisbetűket, a 4 és 9 közötti számjegyeket, valamint a Q és R nagybetűket.
Néhány példa:
- egrep ‘^(0|1)+ +$’ searchfile.txt
match minden olyan sor a searchfile.txt-ben, amely egy üres bitsorral kezdődik, amelyet egy szóköz követ, majd egy nem üres betűszó, amely a sort befejezi
.