Søg efter strenge eller mønstre i almindelig tekst fra terminalen

om søgning efter strenge eller mønstre

I den følgende artikel vil vi se nogle kommandolinjeværktøjer, der bruges til at finde matchende strenge eller mønstre i tekstfiler. Disse værktøjer bruges generelt sammen med regulære udtryk, forkortet som REGEX, som er unikke strenge til at beskrive et søgemønster.

Regulære udtryk er mønstre, der bruges til at finde en bestemt kombination af tegn i en tekststreng. Regulære udtryk giver en meget fleksibel måde at søge på eller genkende tekststrenge på. Selvom vi i de følgende linjer ikke kan se regulære udtryk, bruger vi mønstre eller strenge.

Søg efter strenge eller mønstre fra terminalen

Grep-kommando

Grep er et akronym for Globalt regulært udtryk. Dette er et kraftfuldt kommandolinjeværktøj, der er nyttigt, når du leder efter en bestemt streng eller et bestemt mønster i en fil. Med grep vi vil være i stand til at bruge en lang række funktioner, såsom dem, som en kollega forklarede os i denne blog for et stykke tid siden.

Syntaksen til brug af grep-kommandoen er ret enkel:

grep PATRON [RUTA AL ARCHIVO]

For eksempel at søge efter strengen 'Ubuntu'i en fil, som vi i dette eksempel kalder text.txtuden at tage hensyn til sondringen mellem store og små bogstaver, i en terminal (Ctrl + Alt + T) behøver vi kun at udføre kommandoen:

grep -i tekst

grep -i Ubuntu texto.txt

Kommando sed

Tørst er forkortelse for StreamEditor. Det er et andet nyttigt værktøj til terminalen, hvormed vi kan manipulere tekst i en fil. Sed søger, filtrerer og erstatter strenge i en given fil.

Sed-kommandoen udskriver som standard output i STDOUT (Standard output). Dette indebærer, at resultatet af udførelsen udskrives til terminalen i stedet for at blive gemt i en fil.

Sed-kommandoen kan bruges som følger:

sed -OPCIONES COMANDO [RUTA AL ARCHIVO]

For eksempel at erstatte alle forekomster af 'Linux'i en tekst af'Linux', kommandoen til at bruge ville være følgende:

Kommando sed

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

Hvis det vi leder efter er omdirigere output til en fil i stedet for at udskrive den til terminalen, vi skal bruge omdirigeringstegnet som følger:

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

Outputtet af kommandoen gemmes i filen output.txt i stedet for at blive udskrevet på skærmen.

sed kommando output

For at se flere muligheder kan du se mandsiderne:

mand tørstig

man sed

Ak

Ack er et hurtigt kommandolinjeværktøj skrevet i Perl. Det betragtes som en venlig erstatning for grep-værktøjet, som også genererer resultater på en visuelt attraktiv måde.

til installer ack i vores system bliver vi nødt til at udføre i terminalen (Ctrl + Alt + T):

installer ack

sudo apt install ack

Kommandoen Ack søger i filen eller biblioteket efter de linjer, der indeholder matchningen efter søgekriterierne. Fremhæv derefter den tilsvarende streng. Dette værktøj har evnen til at skelne mellem filer baseret på deres udvidelser.

Syntaksen for Ack-kommandoen ville være noget som følgende

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

For eksempel for at søge efter udtrykket Linux i en fil skal vi udføre:

kommando ack søgning

ack Linux texto.txt

Søgeværktøjet er ret smart og hvis brugeren ikke leverer nogen filer eller kataloger, søger den i det aktuelle bibliotek og underkataloger efter søgemønsteret.

I det følgende eksempel leveres der ingen fil eller mappe. Ack registrerer automatisk den tilgængelige fil i biblioteket og ser efter det matchende mønster:

ACK-søgning uden fil

ack Linux

ripgrep

ripgrep er et platformoverskridende værktøj til at søge efter mønstre med regulært udtryk. Det er hurtigere end alle ovennævnte søgeværktøjer, og det søger i mapper rekursivt efter matchende mønstre. Det giver dig også mulighed for at søge efter bestemte filtyper. Som standard springer ripgrep over binære filer og skjulte filer / mapper.

til installer ripgrep på systemet skal du bare køre følgende kommando i terminalen (Ctrl + Alt + T):

ripgrep installation

sudo apt install ripgrep

Syntaksen for at bruge ripgrep er ret ligetil:

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

Hvis vi ville søge efter kæden 'Linux'i filer, der er placeret i den aktuelle mappe, behøver vi kun at udføre kommandoen:

mand rg linux

rg Linux

For at se flere muligheder kan brugerne bruge mand sider:

mand rg

man rg

Sølvsøger

til installer dette værktøjI Ubuntu skal vi kun åbne en terminal (Ctrl + Alt + T) og skrive kommandoen:

silversearcher-ag installation

sudo apt install silversearcher-ag

Silver Searcher er et cross-platform, open source søgeværktøj svarende til ack, men med vægt på hastighed. Det gør det nemt at finde en bestemt streng inden for filer på kortest mulig tid. Syntaksen, der skal bruges, er:

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

For eksempel at søge 'Linux'i filen text.txt, vi bliver nødt til at skrive i terminalen (Ctrl + Alt + T):

søg med sølvsøger

ag Linux texto.txt

For at se flere muligheder kan vi konsultere mand sider:

mand sølvsøger

man ag

Dette er blot nogle af de mest anvendte kommandolinjeværktøjer til søgning, filtrering og manipulation af tekst i Linux.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.