Handledning för Linux reguljära uttryck: Grep Regex Exempel
Vad är Linux Regular Expressions?
Linux reguljära uttryck är specialtecken som hjälper till att söka efter data och matcha komplexa mönster. Reguljära uttryck förkortas som 'regexp' eller 'regex'. De används i många Linux-program som grep, bash, rename, sed, etc.
Typer av reguljära uttryck
För att underlätta förståelsen låt oss lära oss de olika typerna av Regex en efter en.
Klicka här. om videon inte är tillgänglig
Grundläggande reguljära uttryck
Några av de vanligaste kommandona med reguljära uttryck är tr, sed, vi och grep. Nedan listas några av de grundläggande Regex.
Symbol | Descriptjoner |
---|---|
. | ersätter alla tecken |
^ | matchar strängens början |
$ | matchar slutet av strängen |
* | matchar noll eller fler gånger föregående tecken |
\ | Representerar specialtecken |
() | Grupperar reguljära uttryck |
? | Matchar exakt ett tecken |
Låt oss se ett exempel.
Kör kattprov för att se innehållet i en befintlig fil
Sök efter innehåll som innehåller bokstaven "a".
'^' matchar början på en sträng. Låt oss söka efter innehåll som BÖRJAR med en
Endast rader som börjar med tecken filtreras. Rader som inte innehåller tecknet 'a' i början ignoreras.
Låt oss titta på ett annat exempel -
Välj bara de rader som slutar med t med $
Intervall Reguljära uttryck
Dessa uttryck berättar om antalet förekomster av ett tecken i en sträng. Dom är
Uttryck | Description |
---|---|
{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 |
Exempelvis:
Filtrera bort alla rader som innehåller tecknet 'p'
Vi vill kontrollera att tecknet 'p' förekommer exakt 2 gånger i en sträng efter varandra. För detta skulle syntaxen vara:
cat sample | grep -E p\{2}
Obs: Du måste lägga till -E med dessa reguljära uttryck.
Utökade reguljära uttryck
Dessa reguljära uttryck innehåller kombinationer av mer än ett uttryck. Några av dem är:
Uttryck | Description |
---|---|
\+ | Matchar en eller flera förekomster av föregående tecken |
\? | Matchar noll eller en förekomst av föregående tecken |
Exempelvis:
Söker efter alla tecken "t"
Anta att vi vill filtrera bort rader där tecknet 'a' föregår tecknet 't'
Vi kan använda kommandon som
cat sample|grep "a\+t"
Brace expansion
Syntaxen för klammerparentesexpansion är antingen en sekvens eller en kommaseparerad lista med objekt inom klammerparenteser "{}". Start- och slutposterna i en sekvens separeras med två punkter "...".
Några exempel:
I exemplen ovan skapar echo-kommandot strängar med hjälp av klammerexpansionen.
Sammanfattning:
- Reguljära uttryck är en uppsättning tecken som används för att kontrollera mönster i strängar
- De kallas också "regexp" och "regex"
- Det är viktigt att lära sig vanliga uttryck för att skriva manus
- Några grundläggande reguljära uttryck är:
Symbol | Descriptjoner |
---|---|
. | ersätter alla tecken |
^ | matchar strängens början |
$ | matchar slutet av strängen |
- Några utökade reguljära uttryck är:
Uttryck | Description |
---|---|
\+ |
Matchar en eller flera förekomster av föregående tecken |
\? | Matchar noll eller en förekomst av föregående tecken |
- Några reguljära intervalluttryck är:
Uttryck | Description |
---|---|
{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 |
- Klammerexpansionen används för att generera strängar. Det hjälper till att skapa flera strängar av en.