Avanceret Grep med Regex
Anvend komplekse regex-mønstre med 'grep' for at udføre meget specifikke og effektive tekstsøgninger i filer.
Avanceret Grep med Regex er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Greps superkræfter med regulære udtryk
Velkommen til avanceret grep med regulære udtryk! I den forrige lektion lærte du om selve de regulære udtryk. Nu skal du udfolde deres fulde potentiale i den effektive kommando grep.
grep er dit foretrukne værktøj til at søge efter tekstmønstre i filer. Ved at kombinere det med avancerede regulære udtryk kan du præcisere, hvad du leder efter, uanset hvor komplekst mønstret er.
Aktivering af udvidede regulære udtryk (-E)
Som standard bruger grep grundlæggende regulære udtryk (BRE). Hvis du vil bruge mere avancerede funktioner som +, ?, | og (), skal du aktivere udvidede regulære udtryk (ERE).
Det kan du gøre ved at bruge indstillingen -E eller kommandoen egrep, som i praksis er det samme som grep -E. Lad os oprette en eksempel-fil at arbejde med:
echo "apple
banana
appanana
orange
app" > fruits.txtKvantifikatorer: én eller flere (+)
Kvantifikatoren + matcher én eller flere forekomster af det foregående tegn eller den foregående gruppe. Den er meget nyttig, når du forventer, at et mønster gentages mindst én gang.
Hvis du for eksempel vil finde linjer med "p" efterfulgt af ét eller flere "a'er", skal du bruge pa+.
grep -E 'pa+' fruits.txtKvantifikatorer: nul eller flere (*)
Kvantifikatoren * matcher nul eller flere forekomster af det foregående tegn eller den foregående gruppe. Den er nyttig, når et tegn kan forekomme, men ikke er påkrævet.
Lad os finde linjer med "b" efterfulgt af nul eller flere "a'er":
grep -E 'ba*' fruits.txtKvantifikatorer: nul eller én (?)
Kvantifikatoren ? matcher nul eller én forekomst af det foregående tegn eller den foregående gruppe. Du kan opfatte den som en måde at gøre et tegn valgfrit på.
Vil du finde både "color" og "colour"? Du kan gøre "u" valgfrit:
echo "color
colour
coor" > words.txt
grep -E 'colou?r' words.txtBestemte antal med {} (tuborgske parenteser)
Hvis du vil have endnu mere kontrol, kan du angive bestemte antal eller intervaller med tuborgske parenteser {}:
a{3}: Præcis tre "a'er".a{2,}: To eller flere "a'er".a{1,3}: Mellem ét og tre "a'er".
Lad os finde linjer, hvor "a" gentages præcis to gange:
grep -E 'a{2}' fruits.txtAnkre: begyndelse og slutning (^, $)
Ankre matcher ikke tegn; de matcher positioner. Ankret ^ matcher begyndelsen af en linje, og $ matcher slutningen af en linje.
Det er afgørende, når du vil sikre, at dit mønster matcher hele linjen eller begynder og slutter præcis, hvor du ønsker.
^apple: Linjer, der begynder med "apple".banana$: Linjer, der slutter med "banana".^apple$: Linjer, der kun indeholder "apple".
grep -E '^app' fruits.txtAlternation med OR (|)
Symbolet | (lodret streg) fungerer som en OR-operator. Det lader dig matche ét mønster ELLER et andet. Det er særdeles nyttigt, når du vil søge efter flere forskellige ord eller udtryk på én gang.
Hvis du for eksempel vil finde linjer, der indeholder enten "apple" eller "orange":
grep -E 'apple|orange' fruits.txtGruppering af mønstre med ()
Runde parenteser () bruges til at gruppere dele af et regulært udtryk. Det lader dig anvende kvantifikatorer eller alternation på en hel gruppe i stedet for kun ét tegn.
Hvis du for eksempel vil finde "ana", der forekommer én eller flere gange efter "b":
grep -E 'b(ana)+' fruits.txtHurtigt tjek: avanceret grep
Antag, at filen data.txt indeholder:
cat
cats
catt
catterpillar
dog
Hvilken kommando finder korrekt de linjer, der indeholder "cat" efterfulgt af nul eller flere "t'er"?
Opsummering: Greps styrke med regulære udtryk
Du har fået styr på avancerede grep-teknikker med udvidede regulære udtryk! Vi gennemgik:
- Brug af
-Etil funktioner i udvidede regulære udtryk. - Kvantifikatorer:
+(én eller flere),*(nul eller flere),?(nul eller én) og{}til bestemte antal. - Ankre:
^(linjens begyndelse) og$(linjens slutning). - Alternation med
|til OR-betingelser. - Gruppering af mønstre med
().
Disse værktøjer lader dig udføre utroligt præcise og fleksible tekstsøgninger, så du bliver en sand troldmand på kommandolinjen!
Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 142
- Lektioner
- 568
Ofte stillede spørgsmål
Er lektionen “Avanceret Grep med Regex” gratis?
Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Avanceret Grep med Regex”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Avanceret Grep med Regex”?
Anvend komplekse regex-mønstre med 'grep' for at udføre meget specifikke og effektive tekstsøgninger i filer. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?
Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Avanceret Grep med Regex”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?
Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Introduktion til regulære udtryk (Regex)
- Avanceret Grep med Regex
- Kombination af Regex med sed/awk
- Capture groups, backreferences og substitution