Linux tillhandahåller grep
för textfiltrering. Men i vissa situationer kan vi behöva ett mer utökat verktyg för att matcha ett givet mönster i givna textfiler. Detta verktyg kallas Extended Global Regular Expression Print
eller helt enkelt egrep
. egrep
ger utökade funktioner jämfört med det vanliga grep
-verktyget.
Syntaxen för egrep
-kommandot är som nedan.
egrep FLAG REGEX FILE
- `FLAG` används för att ändra vissa beteenden hos `egrep`-kommandot.
- `REGEX` är det mönster vi vill söka i regex-format.
- `FILE` är filnamnet vi ska söka i
Söka normalt
Vi kan använda egrep
för att söka i normal text utan att ange reguljära uttryck. Vi behöver bara ange den term vi vill söka. I det här exemplet kommer vi att söka ismail
i filen som heter /etc/passwd
.
$ egrep ismail /etc/passwd
Match Lines Contains Numeric Characters
Vi kan specificera numeriska tecken med hjälp av , vilket innebär ett av de numeriska värdena från 0 till 9.
$ egrep ''/etc/passwd
Match Lines Contains Alphabet Characters
Vi kan också ange alfabetiska tecken med för små bokstäver och
för stora bokstäver. I det här exemplet kommer vi att matcha stora bokstäver.
$ egrep ''/etc/passwd
Match All Lines Starting with Alphabet
Vi kan matcha början av raderna med ^
tecken. I det här exemplet kommer vi att leta efter alla rader som börjar med alfatecken.
$ egrep '^' myinput.py
Match All Lines Ending with Numeric
Vi kan specificera slutet av raden med $
tecken. Följande kommando listar alla rader som slutar med ett numeriskt tecken.
$ egrep '$' myinput.py
Match Caseinsenstive
egrep
är som standard case senstive. Stor bokstavskänsla innebär att stora och små bokstäver skiljer sig åt, t.ex. A
skiljer sig från a
. Vi kan göra vår match okänslig för stora och små bokstäver om vi vill med alternativet -i
som flagga. Följande exempel matchar alla följande ord
- IsmaiL
- ismAIL
- ISMAIL
$ egrep -i 'ismail' myinput.py