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 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:
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.
For at se flere muligheder kan du se mandsiderne:
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):
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:
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 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):
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:
rg Linux
For at se flere muligheder kan brugerne bruge mand sider:
man rg
Sølvsøger
til installer dette værktøjI Ubuntu skal vi kun åbne en terminal (Ctrl + Alt + T) og skrive kommandoen:
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):
ag Linux texto.txt
For at se flere muligheder kan vi konsultere mand sider:
man ag
Dette er blot nogle af de mest anvendte kommandolinjeværktøjer til søgning, filtrering og manipulation af tekst i Linux.