Begynderguide

Sådan finder du streng i en fil på Linux

Sådan finder du streng i en fil på Linux

Nogle gange skal du muligvis søge i et bestemt ord eller en streng inde i en fil. For at gøre dette har næsten alle teksteditorer nogle GUI-implementeringer, der kan hjælpe dig. Men for Linux-brugere er det meget mere produktivt og praktisk at foretage disse søgninger fra kommandolinjen.

Faktisk har Linux et kraftfuldt og praktisk kommandolinjeprogram - grep-kommandoen til dette formål. Ved hjælp af dette kan du søge efter en bestemt streng ikke kun i en fil, men flere filer for en mere omfattende søgning.

Inden du kan bruge grep-kommandoen, skal du dog først vide, hvordan den fungerer, og dens syntakser. Og så for at hjælpe dig har vi sammensat en detaljeret guide til brug af grep-kommandoen til at hjælpe dig med at finde strenge i en fil på Linux. Ikke kun det, men vi viser dig også, hvordan du søger efter strenge i filer via kommandolinjeditoren og GUI-teksteditoren.

Bemærk: Til denne vejledning har vi oprettet to demo-tekstfiler - demofile.txt og demofile02.txt. Vi bruger grep-kommandoen til at finde strenge i disse filer. Her er et kig på indholdet af begge disse filer, så du ved, hvordan kommandoerne fungerer.

Indhold af demofile.txt:

Dette er en demo-fil, som jeg har oprettet til demonstrationsformål. Dette indeholder en masse ord for at skabe sætninger, der endelig slutter med en periode. Dette er for grep-eksemplet.

Indhold af demofile02.txt:

Dette er en anden demo-fil, som jeg bruger til denne demonstration. Denne ligner den sidste, da den indeholder tre linjer med nogle ord. Denne anden fil hjælper med at give nogle forskellige eksempler.

Find strenge i en fil via kommandolinjen (GREP-metode)

GREP er en forkortelse for Global Regular Expression Print. Det er "globalt", fordi det kan søge i hele dit Linux-system. "Regular Expression" er det, vi kalder det tekstsøgemønster, som vi vil bruge sammen med kommandoen. Og "Udskriv" betyder, at det vil udskrive søgeresultaterne, så snart det finder et match baseret på det angivne regulære udtryk.

Nu hvor du har en idé om, hvad grep-kommandoen er, lad os se, hvordan vi kan bruge den. Her er syntaksen for at bruge kommandoen grep til at finde en streng i en fil:

$ grep snor filnavn

Du bliver nødt til at erstatte udtrykket "streng" med det "almindelige udtryk", du vil bruge, og "filnavnet" med navnet på den fil, hvor du vil søge efter strengen.

# 1. Brug af GREP til at finde en streng i en fil

Så lad os sige, hvis du vil søge efter ordet "demonstration" i filen "demofile".txt, ”skal du bruge denne kommando:

$ grep demonstration demofile.txt

Hvilket giver output:

Brug af GREP til at finde en streng i en fil

Som du kan se, henter kommandoen hele linjen, der indeholder den medfølgende streng. Hvis den angivne streng forekommer i flere linjer, udskrives den alle. Lad os se, om det fungerer ved at søge efter strengen "Dette" i "demofilen.txt-fil.

$ grep Denne demofil.txt

Og output er:

grep er store og små bogstaver

Bemærk hvordan du brugte strengen "dette" først, og den udskrev ikke noget. Det er først, når du indtaster "Dette", at du får et match. Som sådan skal du huske, at kommandoen grep er store og små bogstaver.

For at ignorere sagen skal du i stedet indtaste denne kommando:

$ grep -i denne demofil.txt

Sådan ignoreres sag i grep-kommando

Som du kan se nu, selvom den medfølgende streng er "dette", matcher kommandoen for "Dette" og udskriver det svar.

# 2. Brug af GREP til at finde den samme streng i flere filer

For at søge gennem flere filer efter den angivne streng, skal du blot tilføje kommandoen med alle filnavne.

Her er et eksempel. Her søger vi efter strengen "ord" i filerne "demofile".txt ”og“ demofile02.txt ”:

$ grep ord demofile.txt demofile02.txt

Og output er:

Brug af GREP til at finde den samme streng i flere filer

Som du kan se, vil grep-kommandoen ikke kun vise dig det matchede resultat, men også bekvemt mærke hvilken fil den kommer fra.

# 3. Brug af GREP til at finde flere strenge i flere filer

Du kan også bruge grep til at finde flere strenge i enkelt- eller flere filer. Dette er den syntaks, som du bliver nødt til at bruge:

$ grep -E 'mønster1 | mønster2 | mønster3 |…' filnavn1 filnavn2 filnavn3 .. 

Indstillingen -E, som vi indtastede, behandler følgende mønster som et udvidet regulært udtryk, som giver os mulighed for at søge efter flere strenge.

Lad os nu bruge det, vi lærte, til at søge efter strengene "fil" og "ord" i de to filer: "demofile.txt ”og“ demofile02.txt ”:

$ grep -E 'fil | ord' demofil.txt demofile02.txt

Og output er:

Brug af GREP til at finde flere strenge i flere filer

# 4. Tips og tricks til brug af GREP-kommandoen til at finde strenge

På trods af sin overordnede enkelhed er grep-kommandoen ekstremt kraftig. Her er et par måder, du kan bruge grep-kommandoen til avancerede strengesøgninger.

For eksempel vidste du, at du kan bruge grep-kommandoen med jokertegn? Lad os overveje denne kommando:

$ grep word demofile *

Hvilket giver output:

grep og jokertegn

Som du kan se, har kommandoen søgt efter og viser nu resultaterne for begge filer “demofile.txt ”og“ demofile02.txt ”. Dette skyldes, at vi brugte det asterisk (*) jokertegn, der bruges til at repræsentere en eller flere forekomster af enhver karakter.

For mere information om de forskellige typer wildcards og hvordan man bruger dem, kan du tjekke denne læsning: Wildcards i Linux forklaret med 10 eksempler.

Når vi går videre, understøtter grep-kommandoen også masser af kommandomuligheder. Vi har allerede set to af dem nu:

Der er masser af andre grep-kommandomuligheder som:

Alt, hvad vi hidtil har diskuteret, skal være nok til at hjælpe dig med at søge efter strenge i filer. Men hvis du vil mestre GREP-kommandoen, anbefaler vi, at du tjekker disse to artikler:

Find strenge i en fil via kommandolinjen (Brug af kommandolinjeditorer)

Grep-kommandoen er et kraftfuldt værktøj, der kan hjælpe dig med at udføre avancerede søgninger for at matche strenge med flere filer og mapper på din Linux-pc. Men hvis du allerede har filen åben i en kommandolinjeteksteditor, er der ingen grund til at afslutte fileditoren og bruge kommandoen grep.

Faktisk kommer de fleste kommandolinjeditorer allerede med en indbygget søgefunktionalitet.

Nu er det uden for denne tutorials rækkevidde at dække hver enkelt kommandolinjeteksteditor, og hvordan man finder strenge i en fil, der er åbnet i den teksteditor. Som sådan vil vi se på de to mest populære kommandolinjeditorer, som du er nødt til at bruge:

Sådan finder du en tekststreng i nano?

Lad os sige, at du har filen åbnet i nano-teksteditoren. I så fald er alt hvad du skal gøre, at trykke på Ctrl + W, og du finder en ny prompt til at skrive strengen.

Når du er færdig, skal du trykke på Enter, og markøren lander på det første tegn i den første forekomst af den søgte streng. Du kan fortsætte med at trykke Enter for at springe til de andre strenginstanser, hvis nogen.

Sådan finder du en tekststreng i nano

Sådan finder du en tekststreng i vim?

Hvis du bruger vim-teksteditoren, kan du skrive: / efterfulgt af den streng, du vil søge efter, og derefter trykke på Enter. På samme måde som før lander markøren ved den første forekomst af den søgte streng. Også her kan du fortsætte med at trykke Enter for at springe til de andre forekomster af strengen.

Sådan finder du en tekststreng i vim

Find strenge i en fil via kommandolinjen (GUI-metode)

Der er endda en GUI-metode til at finde strenge i en fil. I det væsentlige svarer det til funktionen "find og erstat", du får at se på Microsoft Word; det varierer dog afhængigt af hvilken GUI-teksteditor du bruger.

Nu, som du ved, er der hundredvis af teksteditorer, og det er ikke praktisk at dække dem alle her. Alle fungerer dog på samme måde, så du har ikke noget problem at arbejde med andre, når du først ved, hvordan en af ​​dem fungerer.

Til denne tutorial bruger vi standardteksteditoren, der følger med Ubuntu, kaldet - “Text Editor.”

Sådan finder du streng ved hjælp af GUI-teksteditorer

Som du kan se på billedet, har vi åbnet demofilen.txt på redaktøren. Nu klikker vi på rullemenuen, som afslører muligheder for "Find" og "Find and Replace", som vi kan bruge til at finde strenge i den åbnede fil.

Afslutter

Så det bringer os til slutningen af ​​denne korte vejledning om at finde strenge i en fil på Linux. Vi håber, du finder dette nyttigt, og at det hjalp dig med at blive mere produktiv med, hvordan du søger efter specifikke strenge på dit Linux-system.

Hvis du har spørgsmål, bedes du give os en kommentar, så vi hjælper dig med dine forespørgsler.

Hvis du starter med Linux, skal du ikke glemme at tjekke vores Learn Linux-serie. Den er fyldt med masser af fantastiske tutorials, vejledninger og guider, der er designet til begyndere og mere erfarne brugere, der hjælper dig med at blive en ægte Linux-strømbruger.

Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....
Bedste spil at spille med håndsporing
Oculus Quest introducerede for nylig den gode idé om håndsporing uden controllere. Med et stadigt stigende antal spil og aktiviteter, der udfører supp...
Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...