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 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:
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.
For å se flere alternativer, kan du konsulter mannssidene:
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):
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:
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 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):
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:
rg Linux
For å se flere alternativer, kan brukerne bruke mannssider:
man rg
Sølvsøker
Til installer dette verktøyet, i Ubuntu trenger vi bare å åpne en terminal (Ctrl + Alt + T) og skrive kommandoen:
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):
ag Linux texto.txt
For å se flere alternativer kan vi konsultere mannssider:
man ag
Dette er bare noen av de mest brukte kommandolinjeverktøyene for å søke, filtrere og manipulere tekst i Linux.