Søk etter strenger eller mønstre i ren tekst fra terminalen

om søk etter strenger eller mønstre

I den følgende artikkelen vil vi se noen kommandolinjeverktøy som brukes til å finne samsvarende strenger eller mønstre i tekstfiler. Disse verktøyene brukes vanligvis sammen med vanlige uttrykk, forkortet som REGEX, som er unike strenger for å beskrive et søkemønster.

Regulære uttrykk er mønstre som brukes til å finne en bestemt kombinasjon av tegn i en tekststreng. Regulære uttrykk gir en veldig fleksibel måte å søke på eller gjenkjenne tekststrenger på. Selv om vi ikke vil se regulære uttrykk i de følgende linjene, vil vi bruke mønstre eller strenger.

Søk etter strenger eller mønstre fra terminalen

Grep-kommando

Grep er et akronym for Globalt regulært uttrykk. Dette er et kraftig kommandolinjeverktøy som er nyttig når du leter etter en bestemt streng eller et bestemt mønster i en fil. Med grep vi vil kunne bruke et bredt spekter av funksjoner, for eksempel de som en kollega forklarte oss i denne bloggen for en stund siden.

Syntaksen for å bruke grep-kommandoen er ganske enkel:

grep PATRON [RUTA AL ARCHIVO]

For eksempel for å søke etter strengen 'Ubuntu'i en fil som vi i dette eksemplet vil kalle text.txtuten å ta hensyn til skillet mellom store og små bokstaver, i en terminal (Ctrl + Alt + T) trenger vi bare å utføre kommandoen:

grep -i tekst

grep -i Ubuntu texto.txt

Kommando sed

Tørst er forkortelse for StreamEditor. Det er et annet nyttig verktøy for terminalen som vi kan manipulere tekst i en fil med. Sed søker, filtrerer og erstatter strenger i en gitt fil.

Sed-kommandoen skriver som standard utdataene inn STDOUT (Standard utgang). Dette innebærer at resultatet av utførelsen blir skrevet ut til terminalen i stedet for å bli lagret i en fil.

Sed-kommandoen kan brukes som følger:

sed -OPCIONES COMANDO [RUTA AL ARCHIVO]

For eksempel å erstatte alle forekomster av 'Linux'i en tekst av'Linux', vil kommandoen å bruke være følgende:

Kommando sed

sed 's/Linux/GnuLinux/g' texto.txt

Hvis det vi leter etter er omdirigere utdata til en fil i stedet for å skrive den ut til terminalen, vi skal bruke viderekoblingstegnet som følger:

sed 's/Linux/GnuLinux/g' texto.txt > salida.txt

Utdataene fra kommandoen lagres i filen output.txt i stedet for å bli skrevet ut på skjermen.

sed kommandoutgang

For å se flere alternativer, kan du konsulter mannssidene:

mann tørst

man sed

ack

Ack er et raskt kommandolinjeverktøy skrevet i Perl. Det regnes som en vennlig erstatning for grep-verktøyet, som også genererer resultater på en visuelt attraktiv måte.

Til installer ack i vårt system må vi utføre i terminalen (Ctrl + Alt + T):

installer ack

sudo apt install ack

Kommandoen Ack søker i filen eller katalogen etter linjene som inneholder samsvaret for søkekriteriene. Marker deretter den tilsvarende strengen. Dette verktøyet har muligheten til å skille filer basert på utvidelsene deres.

Syntaksen til Ack-kommandoen vil være omtrent som følgende

ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]

For eksempel for å søke etter begrepet Linux i en fil, må vi utføre:

kommando ack søk

ack Linux texto.txt

Søkeverktøyet er ganske smart og Hvis brukeren ikke leverer noen filer eller kataloger, søker den i gjeldende katalog og underkataloger etter søkemønsteret.

I det følgende eksemplet er det ingen fil eller katalog. Ack oppdager automatisk den tilgjengelige filen i katalogen og ser etter det matchende mønsteret:

ACK-søk uten fil

ack Linux

ripgrep

ripgrep er et plattformverktøy for å søke etter mønstre for regulære uttrykk. Det er raskere enn alle søkeverktøyene nevnt ovenfor, og det søker i kataloger rekursivt etter matchende mønstre. Det lar deg også søke etter bestemte filtyper. Som standard vil ripgrep hoppe over binærfiler og skjulte filer / kataloger.

Til installer ripgrep på systemet er alt du trenger å gjøre å kjøre følgende kommando i terminalen (Ctrl + Alt + T):

ripgrep installasjon

sudo apt install ripgrep

Syntaksen for å bruke ripgrep er ganske grei:

rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]

Hvis vi ønsket å søke etter kjeden 'Linux'i filer som ligger i den nåværende katalogen, trenger vi bare å utføre kommandoen:

mann rg linux

rg Linux

For å se flere alternativer, kan brukerne bruke mannssider:

mann rg

man rg

Sølvsøker

Til installer dette verktøyet, i Ubuntu trenger vi bare å åpne en terminal (Ctrl + Alt + T) og skrive kommandoen:

silversearcher-ag installasjon

sudo apt install silversearcher-ag

Silver Searcher er et plattform, åpen kildekode-søkeverktøy som ligner på ack, men med vekt på hastighet. Det gjør det enkelt å finne en bestemt streng i filer på kortest mulig tid. Syntaksen å bruke vil være:

ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo

For eksempel å søke etter 'Linux'i filen text.txt, må vi skrive i terminalen (Ctrl + Alt + T):

søk med sølvsøker

ag Linux texto.txt

For å se flere alternativer kan vi konsultere mannssider:

mann sølvsøker

man ag

Dette er bare noen av de mest brukte kommandolinjeverktøyene for å søke, filtrere og manipulere tekst i Linux.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.