Grep-kommando: kraftig verktøy for å finne tekst fra Terminal

Grep-kommando

Nesten alle som har en datamaskin eller som jobber med en, kjenner hurtigtasten Ctrl + F for å finne tekst. "F" kommer fra "Finn", "å finne" på engelsk, og kan for eksempel brukes til å finne tekst på en webside. Denne snarveien er også tilgjengelig i mange applikasjoner. Det er programmer som bruker "B" for "Søk, men disse snarveiene fungerer bare hvis vi er inne i applikasjonen og med filen åpen. I Linux har vi veldig kraftige verktøy som vi kan starte fra terminalen, og hvis vi vil finn hvilken som helst tekst som er i teamet vårt, vi bruker kommandoen grep.

grep Det er en kommando som vil hjelpe oss med å finne tekst i filen som vi indikerer. Navnet kommer fra g / re / p, en kommando som fungerer for noe lignende i en Unix / Linux teksteditor. Som mange andre kommandoer, grep Har mange tilgjengelige alternativer som vi vil legge til i form av bokstaver og hver og en vil tjene en annen oppgave. Ved å kombinere disse alternativene vil vi kunne utføre komplekse søk i en eller flere filer. Her viser vi deg alt du trenger å vite.

med grep vi finner hvilken som helst tekst i hvilken som helst fil

Først og fremst vil vi forklare de tilgjengelige alternativene:

  • -i: skiller ikke mellom store og små bokstaver.
  • -w: tvinger den til bare å finne spesifikke ord.
  • -v: velger linjene som ikke stemmer overens.
  • -n: viser nummeret på linjen med de forespurte ordene.
  • -h: fjerner prefikset fra Unix-filnavnet i utdataene.
  • -r: søker i kataloger rekursivt.
  • -R: som -r, men følg alle symlenker.
  • -l: viser bare filnavn med valgte linjer.
  • -c- Viser bare ett antall per fil av de valgte linjene.
  • -Farge: Viser de matchende mønstrene i farger.

På bildet som du har overskriften til denne artikkelen har jeg sett etter ordet "Bilder" i filen "830.desktop" som er i den banen. Som du ser har jeg skrevet:

grep Imágenes /home/pablinux/Documentos/830.desktop

Husk at i denne artikkelen vil vi skrive eksempler som må endres i henhold til våre søkeinnstillinger. Ved å si "File", "Word" osv., Vil vi referere til filen med stien. Hvis jeg nettopp hadde skrevet "grep Images 830.desktop", hadde jeg fått en melding om at filen ikke eksisterer. Eller så ville det være med mindre filen var i rotkatalogen.

Andre eksempler vil være:

  • grep -i bilder /home/pablinux/Documentos/830.desktop, hvor "bilder" vil være ordet vi ønsker å finne, og resten filen med stien. Dette eksemplet vil søke etter "bilder" i filen "830.desktop" uten sak.
  • grep -R bilder: det vil søke i alle linjene i en katalog og alle underkataloger der ordet "bilder" finnes.
  • grep -c eksempel test.txt: dette vil se etter oss og vise det totale antall ganger "eksempel" vises i en fil kalt "test.txt.

Med grep vi kan også søke etter filer

Hvis det vi ønsker er å finne filen 830.desktop, vil vi skrive følgende kommando:

grep 830.desktop

Dette vil utføre en søk etter filen «830.desktop» i vår personlige mappeDet vil si at hvis filen er i en annen brukers personlige mappe, blir den ikke funnet. Dette er den mest normale tingen i verden fordi en bruker ikke har tillatelse til å få tilgang til innholdet til en annen uten passordet.

Hvordan utføre rekursive søk

grep det tillater oss også utføre søk underlagt gjentatte regler eller retningslinjer. Les for eksempel alle filene i hver katalog som inneholder ordet "Pablinux". For dette vil vi skrive:

grep -r Pablinux /home/

O brønn:

grep -R Pablinux /home/

Vi vil se resultatene for "Pablinux" på en egen linje foran navnet på filen der den ble funnet. Hvis vi ikke vil se filnavnene i datautgangen, bruker vi alternativet -h (fra "skjul"; skjul):

grep -h -R Pablinux /home/

Vi kan bli med på alternativene og skrive "-hR" uten anførselstegn.

Hvordan gjøre eksakte ordsøk

Noen ganger er det filer som inneholder det vi vil søke etter noe annet. For eksempel kan dette skje med oss ​​i sammensatte ord, og ved å søke etter "skoger" kan vi finne "rangere". Hvis vi vil finn et eksakt ord vi bruker alternativet -w:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

Ovennevnte kommando vil søke etter "skoger", ignorere rangers, i filen "vacation.txt" i den angitte banen. Hvis det vi ønsker er å søke etter to forskjellige ord, vil vi bruke kommandoen egrep:

egrep -w bosques|plantas /ruta/del/archivo

Vet hvor mange ganger et ord vises i en fil

grep det er også i stand til telle hvor mange ganger et ord vises i en fil. For dette bruker vi alternativet -c:

grep -c prueba /ruta/al/archivo

Å legge til alternativet -n det vi vil se er nummeret på linjen der ordet vises.

Omvendt oppslag

Vi kan også gjøre det motsatte, det vil si søk etter linjer som ikke inneholder et ord. For dette vil vi bruke alternativet -v, som vil være som følger:

grep -v la ruta/al/archivo

Ovennevnte kommando viser alle linjer som ikke inneholder ordet "the". Dette kan være nyttig i dokumenter eller lister der et ord gjentas mange ganger, og av en eller annen grunn trenger vi tilgang til resten av linjene.

Få tilgang til systeminformasjon med grep

PC-modell

grep ikke bare er det i stand til å søke i filer. Det er også i stand til å se systeminformasjon. I forrige skjermbilde kan vi se hvordan den viser oss hvilken modell av PC vi har (jeg vet at det ikke er den kraftigste bærbare datamaskinen i verden). For dette har vi brukt kommandoen:

cat /proc/cpuinfo | grep -i 'Model'

O brønn:

grep -i 'Model' /proc/cpuinfo

Hvis det vi ønsker er å se navnene på diskenhetene, vil vi skrive:

dmesg | egrep '(s|h)d[a-z]'

Slik viser du bare samsvarende filnavn

Hvis vi vil se en liste med bare navnene på filene som samsvarer med et søk, bruker vi alternativet -l som vist nedenfor:

grep -l 'main' *.c

Og hvis vi vil se ordet i farger, vil vi skrive:

grep --color palabra /ruta/al/archivo

Som du kan se, kommandoen grep er en veldig kraftig verktøy Det er verdt det spesielt i tilfeller der vi ikke husker hvor vi har skrevet noe eller i programmering. I tillegg hjelper det oss å finne ut systeminformasjon på en måte som terminalelskere vil like. Har denne guiden på kommandoen for å finne tekster vært nyttig for deg grep?


2 kommentarer, legg igjen dine

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.

  1.   nordi sa

    Hei!
    Når du sier at Grep også brukes til å søke etter filer, tror jeg ikke det er riktig, for hvis du kjører grep EXPRESSION og ikke sender filen til den, vil den vente på datainngangen fra standardinngangen.
    I henhold til manualsiden:
    grep søker i de navngitte inndatafilene etter linjer som inneholder et samsvar med det gitte MØNSTER. Hvis ingen filer er spesifisert, eller hvis filen “-” er gitt, søker grep på standardinndata.
    Så du kan bruke den i rørledninger, som den du analyserer utdataene fra / proc / cpuinfo ved å sende utdataene til denne kommandoen som input til grep. Du kan søke.
    En hilsen

  2.   Ann sa

    Veldig bra innlegg.
    Du forklarer det veldig bra, og du går rett til poenget.