Hvordan finne tekst i filer i Linux

Hvordan finne tekst i filer i Linux

For en systemadministrator er det å jobbe med tekstfiler et vanlig fenomen. Må kanskje finne en bestemt seksjon fra hauger med loggfiler for å feilsøke noe? Eller trenger å finne dokumentet som inneholder viktig informasjon raskt?

Når det gjelder Linux, er det mange metoder for å finne tekster i filer. Det er mulig å bruke både innebygde verktøy og tredjepartsapper. Sjekk ut hvordan du finner tekster i filer i Linux.

Finne tekst i filer

Avhengig av antall filer du må utføre et søk på, er det to måter å utføre tekstsøk: automatisert eller manuell. Hvis du må jobbe med et par tekstfiler, er det manuelle søket mer egnet. Imidlertid, hvis det er hundrevis av tekstfiler, er det automatiserte søket det mest effektive.

For automatisert søk bruker vi grep. Grep kommer forhåndsinstallert på Linux-distro. Når det gjelder manuelt søk, vil enhver moderne tekstredigerer gjøre jobben.

Finn tekst i filer ved hjelp av grep

I Linux er grep standardverktøyet for å søke i tekster. Navnet er avledet fra ED -kommandoen G/Re/P som står for “Globalt søk etter et vanlig uttrykk og utskriftsmatchende linjer.”Det er tilgjengelig på alle moderne Linux -distro.

Grep er et kommandolinjeverktøy. Kommandostrukturen er som følger.

$ grep

Som navnet på GREP antyder, blir mønsteret å søke etter beskrevet ved hjelp av et vanlig uttrykk. Det vanlige uttrykket er en spesiell type streng som beskriver et mønster for å matche, lokalisere og administrere. For å lære mer om GREP og vanlig uttrykk, sjekk ut ved hjelp av GREP og EGREP med vanlig uttrykk.

For demonstrasjonsformål, ta tak i en eksempler på tekstfil. I dette eksemplet, last ned GNU General Public License V3.0 tekstfil.

Grunnleggende søk

Den grunnleggende måten å bruke grep på er å søke etter en grunnleggende streng.

Ta en titt på følgende GREP -kommando. Det vil søke etter ordet “gnu” i tekstfilen.

$ grep "gnu" gpl-3.0.tekst

For å vise linjenummeret, bruk "-N" -flagget.

$ grep -n “GNU” GPL -3.0.tekst

For å utføre et etterfølgende søk ved hjelp av grep, bruk "-i" -flagget.

$ grep -ni “GNU” GPL -3.0.tekst

Det er ikke sikkert at du vil se søkekampene, men bare filnavnet der kampen skjedde i noen situasjoner. For å skrive ut bare filnavnet, bruk "-l" -flagget. Her betegner stjerne for å bruke alle tekstfilene i den gjeldende katalogen.

$ grep -l “gnu” *

Vi kan også røre utgangen fra andre kommandoer til grep.

$ CAT GPL-3.0.txt | grep -n “gnu”

Vanlig uttrykk

Regex tilbyr en smart måte å finjustere søket på. Den har sine egne regler. Imidlertid implementerer forskjellige applikasjoner og programmeringsspråk vanlig uttrykk på en annen måte. Her er et par eksempler som du kan bruke med grep.

For å definere at strengen er å finne ved å starte en linje, bruker du Caret (^) symbolet.

$ grep -n “^gnu” gpl -3.0.tekst

For å definere at strengen er å finne på slutten av en linje, bruk dollarskiltet ($).

$ grep -n “til $” GPL -3.0.tekst

For å beskrive at det kan være noen karakter på et bestemt sted av mønsteret, bruk periodekarakteren (.). For eksempel uttrykket “g.U ”er gyldig hvis det er noen karakter mellom“ G ”og“ U ”.

$ grep -n “g.U ”GPL-3.0.tekst

For å beskrive at det kan være en undergruppe av tegn på et bestemt sted av mønsteret, bruk parentesene ([]). For eksempel forteller uttrykket “t [wo] o” at kampen bare er gyldig for "to" og "også".

$ grep -n “t [wo] o” gpl -3.0.tekst

Utvidet vanlig uttrykk

Som navnet antyder, kan et utvidet vanlig uttrykk gjøre mer komplekse ting enn grunnleggende vanlige uttrykk. For å bruke utvidet vanlig uttrykk med GREP, må du bruke "-e" -flagget.

$ grep -ne

For å søke etter to forskjellige strenger, bruk OR -operatørene (|).

$ grep -ne “Gnu | General | License” GPL -3.0.tekst

Finne tekst i filer

Nå kommer hoveddelen. I stedet for å manuelt fortelle Grep filen å utføre søket på, kan Grep gjøre det automatisk. I den følgende kommandoen vil GREP bruke alle tilgjengelige tekstfiler i den gjeldende katalogen for å søke i mønsteret.

$ grep *

Hvis du vil grep for å utføre søket på en annen katalog, må du spesifisere plasseringen.

$ grep

Hvis det er mapper, utforsker grep ikke dem som standard. For å fortelle grep om å søke rekursivt, bruk "-r" -flagget.

$ grep -nr

Grep gui

Hvis du foretrekker å jobbe med GUI, men likevel vil glede deg over Greps funksjoner, så sjekk ut SearchMonkey. Det er en front-end-løsning for grep. Pakken er tilgjengelig på nesten alle de store Linux -distrosene.

Finn tekst i filer ved hjelp av Nano

Gnu Nano er en enkel og kraftig tekstredigerer som følger med alle Linux -distro. Den har innebygde funksjoner for å søke etter tekst i en tekstfil.

Legg merke til at du i denne metoden må åpne tekstfilen og søke manuelt. Det er mulig hvis det bare er en håndfull tekstfiler å fungere med. Hvis det er mer, er det å bruke grep det mest optimale valget.

Åpne tekstfilen i Nano.

$ nano

For å søke etter en strengkamp, ​​trykk “CTRL + W”. Etter å ha skrevet strengen for å søke etter, trykker du på “Enter”.

Finn tekst i filer ved hjelp av VIM

Vim er en kjent og kjent tekstredigerer. Det er kommandolinjens ekvivalent til en moderne tekstredigerer. VIM kommer med mange avanserte funksjoner som plugins, makroer, auto-fullføring, filtre osv.

I likhet med Nano fungerer Vim med en enkelt fil om gangen. Hvis du har flere tekstfiler, er det å bruke grep den mest optimale veien å gå.

For å søke i en tekstfil, først, åpne den i Vim.

$ vim

Skriv inn følgende VIM -kommando og trykk “Enter”.

$:/

Finn tekst i filer ved hjelp av GNOME Text Editor

Gnome Text Editor er Text Editor som følger med GNOME Desktop. Det er en forenklet tekstredigerer med alle de grunnleggende funksjonene du forventer. Det er et fint alternativ til kommandolinjetekstredaktørene.

I likhet med Nano og Vim, gjelder den samme forsiktigheten for denne metoden. Hvis antallet tekstfiler er stort, kan du holde deg til Grep.

Åpne tekstfilen i Text Editor. Trykk “CTRL + F” for å få opp søkefeltet.

Finn tekst i filer ved hjelp av VS -kode

Visual Studio Code er en kraftig tekstredigerer med mange funksjoner. Det er optimalisert for at programmerere kan brukes som om det er en fullverdig IDE. Det er tilgjengelig på nesten alle de store Linux -distrosene.

Installer Visual Studio Code Snap Package.

$ sudo snap installasjonskode --klassisk

Åpne tekstfilen i VS -kode. Trykk “CTRL + F” for å begynne å søke.

Siste tanker

Det er mange måter å søke på tekst i filer. Det er en enkel oppgave å mestre. Det anbefales sterkt å mestre GREP-kommandoen fordi den gir mest verdi når det gjelder effektivitet og brukervennlighet.

Hvis du foretrekker GUI, er det mange tekstredaktører å velge mellom. Enhver moderne tekstredigerer vil gi alternativet for tekstsøk.

Glad databehandling!