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

Grundläggande reguljära uttryck

Sök efter innehåll som innehåller bokstaven "a".

Grundläggande reguljära uttryck

'^' matchar början på en sträng. Låt oss söka efter innehåll som BÖRJAR med en

Grundläggande reguljära uttryck

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 -

Grundläggande reguljära uttryck

Välj bara de rader som slutar med t med $

Grundläggande reguljära uttryck

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'

Intervall Reguljära uttryck

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}

Intervall Reguljära uttryck

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"

Utökade reguljära uttryck

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"

Utökade reguljära uttryck

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:

Brace expansion

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.