Linux Regular Expression Tutorial: Grep Regex Eksempel
⚡ Smart opsummering
Regulære udtryk i Linux er specielle tegnsekvenser, der søger i data og matcher komplekse mønstre på tværs af værktøjer som grep, sed og vi, ved hjælp af basale, interval-, udvidede og parentesudvidelsesformer til at filtrere tekst præcist.

Regulære udtryk er en af de mest kraftfulde funktioner i Linux tekstværktøjer, der giver dig mulighed for at matche, filtrere og transformere data med kompakte mønstre. Denne side forklarer de grundlæggende, interval- og udvidede former, plus klammerudvidelse, med eksempler på bearbejdede grep.
Hvad er regulære Linux-udtryk?
Regulære udtryk i Linux er specialtegn, der hjælper med at søge i data og matche komplekse mønstre. Regulære udtryk forkortes som 'regexp' eller 'regex'. De bruges i mange Linux-programmer, f.eks. grep, bash, omdøb, sed og mere.
Typer af regulære udtryk
For at lette forståelsen, lad os se på de forskellige typer regulære udtryk én efter én. Denne side dækker grundlæggende, interval- og udvidede regulære udtryk og afsluttes med parentesudvidelse.
Grundlæggende regulære udtryk
Nogle af de almindeligt anvendte kommandoer, der fungerer med regulære udtryk, er tr, sed, viog grep. Tabellen nedenfor viser nogle af de grundlæggende regulære udtryk.
| Symbol | Beskrivelse |
|---|---|
| . | Erstatter ethvert tegn |
| ^ | Matcher starten af en streng |
| $ | Matcher slutningen af en streng |
| * | Matcher nul eller flere gange af det foregående tegn |
| \ | Repræsenterer specialtegn |
| () | Grupper regulære udtryk |
| ? | Matcher præcis ét tegn |
Lad os se et eksempel. Kør først cat sample for at vise indholdet af en eksisterende fil, som vist nedenfor.
Søg derefter efter indhold, der indeholder bogstavet 'a'. Skærmbilledet nedenfor viser, at grep returnerer alle linjer, der indeholder et 'a'.
Cirkumflekstegnet '^' matcher starten af en streng. Eksemplet nedenfor søger efter indhold, der starter med bogstavet 'a'.
Kun linjer, der starter med tegnet , filtreres. Linjer, der ikke indeholder tegnet 'a' i starten, ignoreres.
Lad os se på et andet eksempel. Skærmbilledet nedenfor viser igen indholdet af eksempelfilen før filtrering efter slutningen af en linje.
Vælg kun de linjer, der slutter med bogstavet 't', ved hjælp af '$'-ankeret, som vist nedenfor.
Interval Regulære udtryk
Disse udtryk angiver antallet af forekomster af et tegn i en streng. De er anført nedenfor.
| Udtryk | Beskrivelse |
|---|---|
| {ikke} | Matcher det foregående tegn, der vises 'n' gange nøjagtigt |
| {n,m} | Matcher det foregående tegn, der vises 'n' gange, men ikke mere end m |
| {n, } | Matcher kun det foregående tegn, når det vises 'n' gange eller mere |
For eksempel, filtrer alle linjer fra, der indeholder tegnet 'p'. Skærmbilledet nedenfor viser de matchende linjer.
Kontroller nu, at tegnet 'p' optræder præcis to gange i en streng, én efter én. Syntaksen for dette er:
cat sample | grep -E p\{2}
Resultatet af intervalkampen er vist nedenfor.
Bemærk: Du skal tilføje -E med disse regulære udtryk.
Udvidede regulære udtryk
Disse regulære udtryk kombinerer mere end ét udtryk. Nogle af dem er:
| Udtryk | Beskrivelse |
|---|---|
| \+ | Matcher en eller flere forekomster af det forrige tegn |
| \? | Matcher nul eller én forekomst af det forrige tegn |
Søg for eksempel efter alle forekomster af tegnet 't'. Skærmbilledet nedenfor viser resultatet.
Antag, at du vil filtrere linjer fra, hvor tegnet 'a' kommer før tegnet 't'. Du kan bruge en kommando som den nedenfor:
cat sample|grep "a\+t"
Outputtet vises på følgende skærmbillede.
Bøjleudvidelse
Syntaksen for parentesudvidelse er enten en sekvens eller en kommasepareret liste af elementer inden for krøllede parenteser '{}'. Start- og slutelementerne i en sekvens er adskilt af to punktummer '..'.
Nogle eksempler er vist nedenfor.
I eksemplerne ovenfor opretter echo-kommandoen strenge ved hjælp af parentesudvidelse, hvilket producerer flere strenge ud af et enkelt mønster.










