Bli ekspert på Linux-kommandolinjen · leksjon

Filtrere tekst med `grep`

Bli god på `grep` for kraftig mønstergjenkjenning og filtrering av tekst i filer eller kommandoutdata.

Leksjon 2 av 410 trinn

Filtrere tekst med `grep` er en gratis leksjon i Bli ekspert på Linux-kommandolinjen på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Bli ekspert på Linux-kommandolinjen, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Bli ekspert på Linux-kommandolinjen inneholder totalt 4 leksjoner.

Hva er `grep`?

Velkommen til tekstfiltreringens verden! I denne leksjonen skal De bli fortrolige med den kraftige grep-kommandoen.

grep står for Global Regular Expression Print. Det er et kraftig kommandolinjeverktøy for å søke i datasett med ren tekst etter linjer som samsvarer med et regulært uttrykk.

  • Det hjelper Dem med å finne bestemt informasjon i filer raskt.
  • Det filtrerer utdata fra andre kommandoer.
  • Det er uunnværlig innen systemadministrasjon, programmering og dataanalyse.

Deres første `grep`-søk

Den enkleste bruken av grep er å søke etter et bestemt ord eller mønster i en fil.

Den generelle syntaksen er: grep "pattern" filename

La oss finne alle linjer som inneholder ordet "error" i en loggfil. Tenk Dem at my_log.txt inneholder ulike systemmeldinger.

echo "System started.
Error: Disk full.
Warning: Low memory.
Error: Network down." > my_log.txt
grep "Error" my_log.txt

Søke i flere filer

grep er ikke begrenset til én enkelt fil. De kan søke i flere filer eller til og med i alle filer i en katalog.

For å søke i flere filer lister De dem ganske enkelt opp etter mønsteret. For å søke i alle filer i den gjeldende katalogen bruker De et jokertegn som *.

La oss søke etter "failed" i alle .log-filer.

echo "Login success" > auth.log
echo "Login failed" > secure.log
echo "System OK" > kernel.log
grep "failed" *.log

Søk uten hensyn til store og små bokstaver (`-i`)

Som standard skiller grep mellom store og små bokstaver. Det betyr at "Error" er forskjellig fra "error" eller "ERROR".

For å utføre et søk uten hensyn til store og små bokstaver bruker De alternativet -i (for ignore-case).

Prøv å finne alle forekomster av "apple", uavhengig av hvordan ordet skrives med store og små bokstaver.

echo "Apple is good.
I like apples.
APPLES are red." > fruit.txt
grep -i "apple" fruit.txt

Finne det som IKKE samsvarer (`-v`)

Noen ganger ønsker De å se alle linjer som *ikke* inneholder et bestemt mønster. Dette kalles et invertert treff.

Alternativet -v (for invert-match) gjør nettopp dette. Det viser alle linjer som *ikke* samsvarer med det angitte mønsteret.

La oss filtrere bort linjer som inneholder "comment" fra et skript.

echo "# This is a comment
print("Hello")
# Another comment
x = 10" > script.py
grep -v "#" script.py

Telle forekomster (`-c`)

I stedet for å vise linjene som samsvarer, vil De kanskje bare vite hvor mange linjer som samsvarer med mønsteret.

Alternativet -c (for count) ber grep om å bare skrive ut antallet linjer som samsvarer med mønsteret.

Hvor mange linjer inneholder "warning" i systemloggen vår?

echo "Info: System started.
Warning: Low disk space.
Info: User logged in.
Warning: High CPU usage." > system.log
grep -c "Warning" system.log

Finne treff med linjenumre (`-n`)

Når De feilsøker eller analyserer en stor fil, kan det være svært nyttig å vite nøyaktig hvilket linjenummer et treff forekommer på.

Alternativet -n (for line-number) viser linjenummeret foran hver linje som samsvarer.

La oss finne linjenumrene for "function" i en programfil.

echo "def setup():
  print("Setting up")
def run_function():
  pass
# Main part" > program.py
grep -n "function" program.py

`grep` med standardinndata

En av de kraftigste funksjonene i grep er muligheten til å fungere sammen med rør (|).

De kan sende utdataene fra én kommando som inndata til grep, slik at De kan filtrere kommandoutdata i sanntid.

La oss vise alle filer og deretter filtrere slik at bare de som slutter med .txt, vises.

touch report.txt document.pdf image.jpg notes.txt
ls -l | grep ".txt"

Hurtigsjekk av `grep`

De har lært flere nyttige alternativer for grep. La oss teste forståelsen Deres!

Se for Dem en fil med navnet server.log som inneholder meldinger som "ERROR", "Error", "info" og så videre.

Oppsummering: Filtrering med `grep`

Godt jobbet! De har fått kontroll på det grunnleggende ved grep for filtrering av tekst.

Her er en kort oppsummering av det vi har gått gjennom:

  • grep "pattern" filename: Grunnleggende søk etter et mønster i en fil.
  • grep "pattern" *.log: Søk i flere filer ved hjelp av jokertegn.
  • -i: Ignorer store og små bokstaver under søket.
  • -v: Inverter treffet og vis linjer som *ikke* inneholder mønsteret.
  • -c: Tell antallet linjer som samsvarer.
  • -n: Vis linjenumre for linjer som samsvarer.
  • Rørkobling med |: Filtrer utdata fra andre kommandoer.

Disse alternativene gjør grep til et utrolig allsidig verktøy for å hente ut og analysere informasjon på kommandolinjen. Fortsett å øve!

Gratis å komme i gang

Lær deg Bli ekspert på Linux-kommandolinjen med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Filtrere tekst med `grep`» gratis?

Ja – hele teksten i «Filtrere tekst med `grep`» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Bli ekspert på Linux-kommandolinjen-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Bli ekspert på Linux-kommandolinjen inneholder totalt 4 leksjoner.

Hva lærer jeg i «Filtrere tekst med `grep`»?

Bli god på `grep` for kraftig mønstergjenkjenning og filtrering av tekst i filer eller kommandoutdata. Du øver på Bli ekspert på Linux-kommandolinjen med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Bli ekspert på Linux-kommandolinjen?

Ingen tidligere erfaring er nødvendig. Bli ekspert på Linux-kommandolinjen på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Filtrere tekst med `grep`»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Bli ekspert på Linux-kommandolinjen-leksjonen?

Ja. Alle Bli ekspert på Linux-kommandolinjen-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Standardstrømmer og omdirigering
  2. Filtrere tekst med `grep`
  3. Tekstbehandling med `sed` og `awk`
  4. Kombinere og sortere utdata med sort, uniq og cut
← Tilbake til Bli ekspert på Linux-kommandolinjen