Hvordan finne tekst i filer i Linux

How Find Text Files Linux



For en systemadministrator er arbeid med tekstfiler et vanlig fenomen. Kanskje du må finne en bestemt seksjon fra hauger med loggfiler for å feilsøke noe? Eller trenger du å 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 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 på: automatisk eller manuell. Hvis du må jobbe med et par tekstfiler, er det manuelle søket mer egnet. Men hvis det er hundrevis av tekstfiler, er det automatiserte søket det mest effektive.



For automatisk søk ​​bruker vi grep. Grep er forhåndsinstallert på en hvilken som helst 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 etter tekster. Navnet er avledet fra ed -kommandoen g/re/p som står for globalt søk etter et vanlig uttrykk og skrive ut matchende linjer. Den er tilgjengelig på alle moderne Linux -distroer.





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

$grep <alternativ> <vanlig uttrykk> <file_path>

Som navnet på grep antyder, er mønsteret å søke etter beskrevet med et vanlig uttrykk. Det vanlige uttrykket er en spesiell type streng som beskriver et mønster som skal matches, lokaliseres og administreres. For å lære mer om grep og regulært uttrykk, sjekk ut bruker grep og egrep med vanlig uttrykk .



For demonstrasjonsformål, ta en eksempeltekstfil. 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'lpg-3.0.tekst

For å vise linjenummeret, bruk flagget -n.

$grep -nGNU gpl-3.0.tekst

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

$grep -nignu gpl-3.0.tekst

Du vil kanskje ikke se søkekampene, men bare filnavnet der kampen skjedde i noen situasjoner. For å skrive ut bare filnavnet, bruk -l -flagget. Her angir stjernen å bruke alle tekstfilene i den nåværende katalogen.

$grep -degnu*

Vi kan også lede utdataene fra andre kommandoer til grep.

$kattlpg-3.0.tekst| grep -nGNU

Vanlig uttrykk

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

For å definere at strengen skal finnes ved å starte en linje, bruker du tegnet (^) symbolet.

$grep -n^ GNU gpl-3.0.tekst

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

$grep -ntil $ gpl-3.0.tekst

For å beskrive at det kan være et hvilket som helst tegn på et bestemt sted i mønsteret, bruk punktumstegnet (.). For eksempel er uttrykket G.U gyldig hvis det er et tegn mellom G og U.

$grep -nG.U gpl-3.0.tekst

For å beskrive at det kan være et delsett med tegn på et bestemt sted i mønsteret, bruker du parentesene ([]). For eksempel forteller uttrykket t [wo] o at kampen er gyldig for to og for bare.

$grep -nt[Hvor]o gpl-3.0.tekst

Utvidet regulært uttrykk

Som navnet antyder, kan et utvidet regulært uttrykk gjøre mer komplekse ting enn grunnleggende regulære uttrykk. For å bruke utvidet regulært uttrykk med grep, må du bruke -E -flagget.

$grep -Født <utvidet_regex> <fil>

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

$grep -FødtGNU|generell|Lisens gpl-3.0.tekst

Finne tekst i filer

Nå kommer hoveddelen. I stedet for å fortelle grep filen manuelt skal utføre søket på, kan grep gjøre det automatisk. I den følgende kommandoen vil grep bruke alle tilgjengelige tekstfiler i den nåværende katalogen for å søke etter mønsteret.

$grep <regex> *

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

$grep <regex> <katalog_bane>

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

$grep -nR <regex> <katalog_bane>

Grep GUI

Hvis du foretrekker å jobbe med GUI, men fortsatt vil glede deg over greps funksjoner, kan du sjekke ut søkemonkey. Det er en front-end løsning for grep. Pakken er tilgjengelig på nesten alle de store Linux -distroene.

Finn tekst i filer ved hjelp av nano

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

Vær oppmerksom på at i denne metoden må du åpne tekstfilen og søke manuelt. Det er mulig hvis det bare er en håndfull tekstfiler å jobbe med. Hvis det er mer, er bruk av grep det mest optimale valget.

Åpne tekstfilen i nano.

$nano <file_path>

Trykk på Ctrl + W. for å søke etter en strengmatch. Etter å ha skrevet strengen du vil søke etter, trykker du på Enter.

Finn tekst i filer ved hjelp av Vim

Vim er en velkjent og kjent tekstredigerer. Det er kommandolinjeekvivalenten til en moderne tekstredigerer. Vim kommer med mange avanserte funksjoner som plugins, makroer, automatisk utfylling, filtre, etc.

I likhet med nano jobber Vim med en enkelt fil om gangen. Hvis du har flere tekstfiler, er bruk av grep den mest optimale måten å gå.

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

$jeg kom <file_path>

Skriv inn følgende Vim -kommando og trykk Enter.

$:/<søkeord>

Finn tekst i filer ved hjelp av GNOME Text Editor

GNOME Text Editor er tekstredigereren som følger med GNOME -skrivebordet. Det er en forenklet tekstredigerer med alle de grunnleggende funksjonene du kan forvente. Det er et fint alternativ til kommandolinjens tekstredigerere.

I likhet med nano og vim, gjelder den samme forsiktigheten for denne metoden. Hvis antallet tekstfiler er stort, er det bedre å holde seg til grep.

Åpne tekstfilen i Text Editor. Trykk Ctrl + F for å åpne søkefeltet.

Finn tekst i filer ved hjelp av VS -kode

Visual Studio Code er en kraftig tekstredigerer med tonnevis av funksjoner. Den er optimalisert for programmerere som skal brukes som om den er en fullverdig IDE. Den er tilgjengelig på nesten alle de store Linux -distroene.

Installer Visual Studio Code snap -pakken.

$sudosnapinstallerekode-klassisk

Åpne tekstfilen i VS Code. Trykk Ctrl + F for å begynne å søke.

Siste tanker

Det er mange måter å søke etter tekst i filer. Det er en lett 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 tekstredigerere å velge mellom. Enhver moderne tekstredigerer gir alternativet for tekstsøk.

God databehandling!