Vad är Linux Regular Expressions?
Linux Regular Expressions är specialtecken som hjälper till att söka i data och matcha komplexa mönster. Regulä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.
- Grundläggande reguljära uttryck
- Intervall Vanliga uttryck
- Utökade reguljära uttryck
- Sammanfattning
Klicka här om videon inte är tillgänglig
Grundläggande reguljära uttryck
Några av de vanliga kommandona med reguljära uttryck är tr, sed, vi och grep. Nedan listas några av de grundläggande Regex.
Symbol | Beskrivningar |
---|---|
. | ersätter alla karaktärer |
matchar strängens start | |
$ | matchar slutet på strängen |
* | matchar noll eller fler gånger föregående tecken |
\ | Representera specialtecken |
() | Grupperar reguljära uttryck |
? | Matchar exakt en karaktär |
Låt oss se ett exempel.
Utfö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. Linjer 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 Vanliga uttryck
Dessa uttryck berättar om antalet förekomster av en karaktär i en sträng. Dom är
Uttryck | Beskrivning |
---|---|
{n} |
Matchar föregående tecken som visas 'n' gånger exakt |
{n, m} | Matchar föregående tecken som visas 'n' gånger men inte mer än m |
{n,} | Matchar föregående tecken endast när det visas 'n' gånger eller mer |
Exempel:
Filtrera bort alla rader som innehåller tecknet 'p'
Vi vill kontrollera att tecknet 'p' visas exakt två 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 | Beskrivning |
---|---|
\ + |
Matchar en eller flera förekomster av föregående tecken |
\? |
Matchar noll eller en förekomst av föregående tecken |
Exempel:
Söker efter alla tecken 't'
Anta att vi vill filtrera bort rader där tecken 'a' föregår tecken 't'
Vi kan använda kommando som
cat sample|grep "a\+t"
Brace expansion
Syntaxen för hängningsutvidgning är antingen en sekvens eller en kommaseparerad lista med objekt i lockiga hakparenteser "{}". Start- och slutobjekten i en sekvens är åtskilda av två perioder "...".
Några exempel:
I ovanstående exempel skapar ekokommandot strängar med hjälp av stagutvidgningen.
Sammanfattning:
- Regulä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 | Beskrivningar |
---|---|
. | ersätter alla karaktärer |
matchar strängens start | |
$ | matchar slutet på strängen |
- Några utökade reguljära uttryck ä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 |
- Några intervallregeluttryck är:
Uttryck | Beskrivning |
---|---|
{n} | Matchar föregående tecken som visas 'n' gånger exakt |
{n, m} | Matchar föregående tecken som visas 'n' gånger men inte mer än m |
{n,} | Matchar föregående tecken endast när det visas 'n' gånger eller mer |
- Brace-expansionen används för att generera strängar. Det hjälper till att skapa flera strängar av en.