Linux-kommandolinjen i dybden · Lektion

Filtrering af tekst med `grep`

Bliv fortrolig med `grep` til effektiv mønstergenkendelse og filtrering af tekst i filer eller kommandooutput.

Lektion 2 af 410 trin

Filtrering af tekst med `grep` er en gratis Linux-kommandolinjen i dybden-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Linux-kommandolinjen i dybden, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Linux-kommandolinjen i dybden-kurset indeholder 4 lektioner i alt.

Hvad er `grep`?

Velkommen til tekstfiltreringens verden! I denne lektion lærer du at mestre den effektive kommando grep.

grep står for Global Regular Expression Print. Det er et effektivt kommandolinjeværktøj til at søge efter linjer i datasæt med almindelig tekst, som matcher et regulært udtryk.

  • Det hjælper dig med hurtigt at finde bestemte oplysninger i filer.
  • Det filtrerer output fra andre kommandoer.
  • Det er uundværligt til systemadministration, programmering og dataanalyse.

Din første `grep`-søgning

Den mest grundlæggende anvendelse af grep er at søge efter et bestemt ord eller mønster i en fil.

Den generelle syntaks er: grep "pattern" filename

Lad os finde alle linjer, der indeholder ordet "error" i en logfil. Forestil dig, at my_log.txt indeholder forskellige systemmeddelelser.

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

Søgning i flere filer

grep er ikke begrænset til én fil. Du kan søge i flere filer eller endda i alle filer i en mappe.

Hvis du vil søge i flere filer, skal du blot angive dem efter mønsteret. Hvis du vil søge i alle filer i den aktuelle mappe, kan du bruge et jokertegn som *.

Lad os søge efter "failed" i alle .log-filer.

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

Søgning uden hensyn til store og små bogstaver (`-i`)

Som standard skelner grep mellem store og små bogstaver. Det betyder, at "Error" er forskelligt fra "error" og "ERROR".

Hvis du vil foretage en søgning uden hensyn til store og små bogstaver, skal du bruge indstillingen -i (for ignore-case).

Prøv at finde alle forekomster af "apple", uanset hvordan ordet er skrevet med store og små bogstaver.

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

Find det, der IKKE matcher (`-v`)

Nogle gange vil du se alle linjer, der ikke indeholder et bestemt mønster. Det kaldes et omvendt match.

Indstillingen -v (for invert-match) gør netop dette. Den viser alle linjer, der ikke matcher det angivne mønster.

Lad os filtrere linjer, der indeholder "comment", væk fra et script.

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

Optælling af forekomster (`-c`)

I stedet for at vise de matchende linjer vil du måske bare vide, hvor mange linjer der matcher dit mønster.

Indstillingen -c (for count) får grep til kun at udskrive antallet af linjer, der matcher mønsteret.

Hvor mange linjer indeholder "warning" i vores systemlog?

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

Find match med linjenumre (`-n`)

Når du fejlsøger eller analyserer en stor fil, kan det være meget nyttigt at kende det nøjagtige linjenummer, hvor et match forekommer.

Indstillingen -n (for line-number) viser linjenummeret før hver matchende linje.

Lad os finde 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 standardinput

En af de mest effektive funktioner i grep er muligheden for at arbejde med pipes (|).

Du kan sende outputtet fra én kommando videre som input til grep, så du kan filtrere kommandooutput i realtid.

Lad os vise en liste over alle filer og derefter filtrere den, så kun filer, der slutter med .txt, vises.

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

Hurtigtjek af `grep`

Du har lært flere nyttige indstillinger til grep. Lad os teste, om du har forstået dem!

Forestil dig en fil med navnet server.log, som indeholder meddelelser som "ERROR", "Error", "info" og så videre.

Opsummering: Filtrering med `grep`

Godt arbejde! Du har lært det grundlæggende i at bruge grep til tekstfiltrering.

Her er en kort opsummering af det, vi har gennemgået:

  • grep "pattern" filename: Grundlæggende søgning efter et mønster i en fil.
  • grep "pattern" *.log: Søgning i flere filer ved hjælp af jokertegn.
  • -i: Ignorerer store og små bogstaver under søgningen.
  • -v: Vender matchet om og viser linjer, der ikke indeholder mønsteret.
  • -c: Tæller antallet af matchende linjer.
  • -n: Viser linjenumre for matchende linjer.
  • Pipes med |: Filtrerer output fra andre kommandoer.

Disse indstillinger gør grep til et utroligt alsidigt værktøj til at udtrække og analysere oplysninger på kommandolinjen. Bliv ved med at øve dig!

Gratis at komme i gang

Lær Linux-kommandolinjen i dybden 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
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Filtrering af tekst med `grep`” gratis?

Ja — hele teksten til “Filtrering af tekst med `grep`” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Linux-kommandolinjen i dybden-kurset, skal du opgradere til CoddyKit PRO. Linux-kommandolinjen i dybden-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Filtrering af tekst med `grep`”?

Bliv fortrolig med `grep` til effektiv mønstergenkendelse og filtrering af tekst i filer eller kommandooutput. Du øver dig i Linux-kommandolinjen i dybden 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å Linux-kommandolinjen i dybden?

Der kræves ingen tidligere erfaring. Linux-kommandolinjen i dybden 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 “Filtrering af tekst med `grep`”?

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 Linux-kommandolinjen i dybden-lektion?

Ja. Alle Linux-kommandolinjen i dybden-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

  1. Standardstreams og omdirigering
  2. Filtrering af tekst med `grep`
  3. Tekstmanipulation med `sed` og `awk`
  4. Kombinér og sortér output med sort, uniq og cut
← Tilbage til Linux-kommandolinjen i dybden