Linux Regular Expression Tutorial: Grep Regex Exempel

Innehållsförteckning:

Anonim

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.