Zelfstudie over reguliere expressies van Linux: Grep Regex-voorbeeld
Wat zijn Linux reguliere expressies?
Reguliere expressies van Linux zijn speciale tekens die helpen bij het zoeken naar gegevens en het matchen van complexe patronen. Reguliere expressies worden afgekort als 'regexp' of 'regex'. Ze worden gebruikt in veel Linux-programma's zoals grep, bash, rename, sed, etc.
Soorten reguliere expressies
Laten we voor een beter begrip de verschillende soorten Regex één voor één leren.
Klik hier als de video niet toegankelijk is
Basis reguliere expressies
Enkele veelgebruikte opdrachten met reguliere expressies zijn tr, sed, vi en grep. Hieronder vindt u enkele van de basis Regex.
| Symbool | Descriptionen |
|---|---|
| . | vervangt elk karakter |
| ^ | komt overeen met het begin van de tekenreeks |
| $ | komt overeen met het einde van de tekenreeks |
| * | komt nul of meer keer overeen met het voorgaande teken |
| \ | Vertegenwoordig speciale karakters |
| () | Groepeert reguliere expressies |
| ? | Komt overeen met precies één karakter |
Laten we een voorbeeld bekijken.
Voer een cat-voorbeeld uit om de inhoud van een bestaand bestand te bekijken
Zoek naar inhoud die de letter 'a' bevat.
'^' komt overeen met het begin van een tekenreeks. Laten we zoeken naar inhoud die BEGINT met een
Alleen regels die beginnen met een teken worden gefilterd. Regels die aan het begin niet het teken 'a' bevatten, worden genegeerd.
Laten we eens naar een ander voorbeeld kijken –
Selecteer alleen die regels die eindigen op t met behulp van $
Interval Reguliere expressies
Deze expressies vertellen ons over het aantal keren dat een teken in een string voorkomt. Zij zijn
| Expressie | Beschrijving |
|---|---|
| {N} | Komt exact overeen met het voorgaande teken dat 'n' keer voorkomt |
| {n,m} | Komt overeen met het voorgaande teken dat 'n' keer voorkomt, maar niet meer dan m |
| {N, } | Komt alleen overeen met het voorgaande teken als dit 'n' keer of vaker voorkomt |
Voorbeeld:
Filter alle regels uit die het teken 'p' bevatten
We willen controleren of het teken 'p' precies 2 keer achter elkaar in een string voorkomt. Hiervoor zou de syntaxis zijn:
cat sample | grep -E p\{2}
Opmerking: bij deze reguliere expressies moet u -E toevoegen.
Uitgebreide reguliere expressies
Deze reguliere expressies bevatten combinaties van meer dan één expressie. Sommige ervan zijn:
| Expressie | Beschrijving |
|---|---|
| \+ | Komt overeen met een of meer exemplaren van het vorige teken |
| \? | Komt overeen met nul of één keer dat het vorige teken voorkomt |
Voorbeeld:
Zoeken naar alle tekens 't'
Stel dat we regels willen uitfilteren waar teken 'a' voorafgaat aan teken 't'
We kunnen een commando gebruiken zoals
cat sample|grep "a\+t"
Uitbreiding van de beugel
De syntaxis voor accolade-uitbreiding is een reeks of een door komma's gescheiden lijst met items tussen accolades “{}”. De begin- en einditems in een reeks worden gescheiden door twee punten “...”.
Een paar voorbeelden:
In de bovenstaande voorbeelden maakt het echo-commando tekenreeksen met behulp van de accolade-uitbreiding.
Overzicht:
- Reguliere expressies zijn een reeks tekens die worden gebruikt om patronen in tekenreeksen te controleren
- Ze worden ook wel 'regexp' en 'regex' genoemd
- Het is belangrijk om reguliere expressies te leren voor het schrijven van scripts
- Enkele fundamentele reguliere expressies zijn:
| Symbool | Descriptionen |
|---|---|
| . | vervangt elk karakter |
| ^ | komt overeen met het begin van de tekenreeks |
| $ | komt overeen met het einde van de tekenreeks |
- Enkele uitgebreide reguliere expressies zijn:
| Expressie | Beschrijving |
|---|---|
|
\+ |
Komt overeen met een of meer exemplaren van het vorige teken |
| \? | Komt overeen met nul of één keer dat het vorige teken voorkomt |
- Enkele reguliere intervalexpressies zijn:
| Expressie | Beschrijving |
|---|---|
| {N} | Komt exact overeen met het voorgaande teken dat 'n' keer voorkomt |
| {n,m} | Komt overeen met het voorgaande teken dat 'n' keer voorkomt, maar niet meer dan m |
| {N, } | Komt alleen overeen met het voorgaande teken als dit 'n' keer of vaker voorkomt |
- De accolade-uitbreiding wordt gebruikt om strings te genereren. Het helpt bij het maken van meerdere strings uit één.










