Handledning för Linux reguljära uttryck: Grep Regex Exempel
⚡ Smart sammanfattning
Reguljära uttryck i Linux är specialteckensekvenser som söker i data och matchar komplexa mönster i verktyg som grep, sed och vi, med hjälp av grundläggande, intervall-, utökade och klammerparentesexpansionsformer för att filtrera text exakt.

Reguljära uttryck är en av de kraftfullaste funktionerna hos Linux textverktyg, som låter dig matcha, filtrera och transformera data med kompakta mönster. Den här sidan förklarar grund-, intervall- och utökade former, plus expansion av klammerparenteser, med exempel på bearbetade grep.
Vad är Linux Regular Expressions?
Reguljära uttryck i Linux är specialtecken som hjälper till att söka i data och matcha komplexa mönster. Reguljära uttryck förkortas till 'regexp' eller 'regex'. De används i många Linux-program, t.ex. grep, bash, byt namn, sed och mer.
Typer av reguljära uttryck
För att underlätta förståelsen, låt oss lära oss de olika typerna av reguljära uttryck en efter en. Den här sidan täcker grundläggande, intervall- och utökade reguljära uttryck och avslutas med klammerutvidgning.
Grundläggande reguljära uttryck
Några av de vanligaste kommandona som fungerar med reguljära uttryck är tr, sed, vioch grep. Tabellen nedan listar några av de grundläggande reguljära uttrycken.
| Symbol | BESKRIVNING |
|---|---|
| . | Ersätter valfritt tecken |
| ^ | Matchar början av en sträng |
| $ | Matchar slutet av en sträng |
| * | Matchar noll eller fler gånger av föregående tecken |
| \ | Representerar specialtecken |
| () | Grupperar reguljära uttryck |
| ? | Matchar exakt ett tecken |
Låt oss se ett exempel. Kör först cat sample för att visa innehållet i en befintlig fil, som visas nedan.
Sök sedan efter innehåll som innehåller bokstaven 'a'. Skärmdumpen nedan visar hur grep returnerar varje rad som innehåller ett 'a'.
Cirkumflätet '^' matchar början av en sträng. Exemplet nedan söker efter innehåll som börjar med bokstaven 'a'.
Endast rader som börjar med tecknet filtreras. Rader som inte innehåller tecknet 'a' i början ignoreras.
Låt oss titta på ett annat exempel. Skärmdumpen nedan visar återigen innehållet i exempelfilen innan filtrering efter radens slut.
Markera endast de rader som slutar på bokstaven 't' med hjälp av ankaret '$', som visas nedan.
Intervall Reguljära uttryck
Dessa uttryck anger antalet förekomster av ett tecken i en sträng. De listas nedan.
| Uttryck | BESKRIVNING |
|---|---|
| {inte} | Matchar det föregående tecknet som visas "n" gånger exakt |
| {n,m} | Matchar det föregående tecknet som visas "n" gånger men inte mer än m |
| {n, } | Matchar det föregående tecknet endast när det förekommer "n" gånger eller mer |
Filtrera till exempel bort alla rader som innehåller tecknet 'p'. Skärmdumpen nedan visar de matchande raderna.
Kontrollera nu att tecknet 'p' förekommer exakt två gånger i en sträng, en gång efter en. Syntaxen för detta är:
cat sample | grep -E p\{2}
Resultatet av intervallmatchen visas nedan.
Obs: Du måste lägga till -E med dessa reguljära uttryck.
Utökade reguljära uttryck
Dessa reguljära uttryck kombinerar mer än ett uttryck. Några av dem är:
| Uttryck | BESKRIVNING |
|---|---|
| \+ | Matchar en eller flera förekomster av föregående tecken |
| \? | Matchar noll eller en förekomst av föregående tecken |
Sök till exempel efter alla förekomster av tecknet 't'. Skärmdumpen nedan visar resultatet.
Anta att du vill filtrera bort rader där tecknet 'a' föregår tecknet 't'. Du kan använda ett kommando som det nedan:
cat sample|grep "a\+t"
Utdata visas i följande skärmdump.
Brace expansion
Syntaxen för klammerutvidgning är antingen en sekvens eller en kommaseparerad lista med objekt inom klammerparenteser '{}'. Start- och slutobjekten i en sekvens separeras med två punkter '..'.
Några exempel visas nedan.
I exemplen ovan skapar echo-kommandot strängar med hjälp av parentesexpansion, vilket producerar flera strängar från ett enda mönster.










