Grep-kommando: kraftfuldt værktøj til at finde tekst fra Terminal

Grep-kommando

Næsten alle, der har en computer, eller som arbejder med en, kender tastaturgenvejen Ctrl + F for at finde tekst. "F" kommer fra "Find", "at finde" på engelsk og kan f.eks. Bruges til at finde tekst på en webside. Denne genvej er også tilgængelig i mange applikationer. Der er programmer, der bruger "B" til "Søgning, men disse genveje fungerer kun, hvis vi er inde i applikationen og med filen åben. I Linux har vi meget kraftfulde værktøjer, som vi kan starte fra terminalen, og hvis vi vil find enhver tekst, der er i vores team, vi bruger kommandoen grep.

grep Det er en kommando, der hjælper os med at finde tekst i den fil, som vi angiver. Dets navn kommer fra g / re / p, en kommando, der fungerer for noget lignende i en Unix / Linux teksteditor. Som mange andre kommandoer, grep Har mange tilgængelige indstillinger, som vi vil tilføje i form af bogstaver og hver vil tjene en anden opgave. Ved at kombinere disse muligheder vil vi være i stand til at udføre komplekse søgninger i en eller flere filer. Her viser vi dig alt hvad du behøver at vide.

med grep vi finder enhver tekst i enhver fil

Først og fremmest forklarer vi de tilgængelige muligheder:

  • -i: skelner ikke mellem store og små bogstaver.
  • -w: tving det til kun at finde bestemte ord.
  • -v: vælger de linjer, der ikke stemmer overens.
  • -n: viser nummeret på linjen med de ønskede ord.
  • -h: fjerner præfikset fra Unix-filnavnet i output.
  • -r: søger i kataloger rekursivt.
  • -R: som -r men følg alle symlinks.
  • -l: viser kun filnavne med valgte linjer.
  • -c- Viser kun en optælling pr. Fil af de valgte linjer.
  • -Farve: Viser de matchende mønstre i farver.

På billedet, som du har overskriften til denne artikel, har jeg ledt efter ordet "Billeder" i filen "830.desktop", der er i den sti. Som du kan se, har jeg skrevet:

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

Husk, at i denne artikel vil vi skrive eksempler, der skal ændres i henhold til vores søgepræferencer. Ved at sige "File", "Word" osv. Vil vi henvise til filen med dens sti. Hvis jeg lige havde skrevet "grep Images 830.desktop", ville jeg have modtaget en besked om, at filen ikke eksisterer. Eller sådan ville det være, medmindre filen var i rodmappen.

Andre eksempler er:

  • grep -i billeder /home/pablinux/Documentos/830.desktop, hvor "billeder" ville være det ord, vi vil finde, og resten filen med dens sti. Dette eksempel vil søge efter "billeder" i filen "830.desktop" ufølsom.
  • grep -R-billeder: det ville søge i alle linjerne i en mappe og i alle dens underkataloger, hvor ordet "billeder" findes.
  • grep -c eksempel test.txt: dette vil se efter os og vise det samlede antal gange "eksempel" vises i en fil kaldet "test.txt.

Med grep vi kan også søge efter filer

Hvis vi vil finde filen 830.desktop, skriver vi følgende kommando:

grep 830.desktop

Dette udfører en søg efter filen «830.desktop» i vores personlige mappeDet vil sige, at hvis filen er i en anden brugers personlige mappe, vil den ikke blive fundet. Dette er den mest normale ting i verden, fordi en bruger ikke har tilladelse til at få adgang til indholdet af en anden uden deres adgangskode.

Sådan udføres rekursive søgninger

grep det tillader os også udføre søgninger underlagt tilbagevendende regler eller retningslinjer. Læs f.eks. Alle filerne i hvert bibliotek, der indeholder ordet "Pablinux". Til dette vil vi skrive:

grep -r Pablinux /home/

O brønd:

grep -R Pablinux /home/

Vi vil se resultaterne for "Pablinux" på en separat linje foran navnet på den fil, hvor den blev fundet. Hvis vi ikke ønsker at se filnavnene i dataoutputtet, bruger vi indstillingen -h (fra "skjul"; skjul):

grep -h -R Pablinux /home/

Vi kan deltage i mulighederne og skrive "-hR" uden citaterne.

Sådan foretages nøjagtige ordsøgninger

Nogle gange er der filer, der indeholder det, vi vil søge efter noget andet. For eksempel kan dette ske for os i sammensatte ord, og ved at søge efter "skove" kan vi finde "rangers". Hvis vi vil find et nøjagtigt ord vi bruger indstillingen -w:

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

Ovenstående kommando ville søge efter "skove", ignorere rangers, i filen "vacation.txt" i den angivne sti. Hvis det, vi ønsker, er at søge efter to forskellige ord, bruger vi kommandoen egrep:

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

Ved, hvor mange gange et ord vises i en fil

grep det er også i stand til tæl hvor mange gange et ord vises i en fil. Til dette vil vi bruge -c-indstillingen:

grep -c prueba /ruta/al/archivo

Tilføjelse af indstillingen -n det, vi ser, er nummeret på den linje, hvor ordet vises.

Omvendte opslag

Vi kan også gøre det modsatte, det vil sige søg efter linjer, der ikke indeholder et ord. Til dette vil vi bruge -v-indstillingen, som ville være som følger:

grep -v la ruta/al/archivo

Ovenstående kommando viser alle linjer, der ikke indeholder ordet "the". Dette kan være nyttigt i dokumenter eller lister, hvor et ord gentages mange gange, og af en eller anden grund er vi nødt til at få adgang til resten af ​​linjerne.

Adgang til systeminformation med grep

PC-model

grep det er ikke kun i stand til at søge i filer. Det er også i stand til at se systeminformation. I det forrige skærmbillede kan vi se, hvordan det viser os, hvilken pc-model vi har (jeg ved, at det ikke er den mest kraftfulde bærbare computer i verden). Til dette har vi brugt kommandoen:

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

O brønd:

grep -i 'Model' /proc/cpuinfo

Hvis det, vi ønsker, er at se navnene på diskenhederne, skriver vi:

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

Sådan vises kun matchende filnavne

Hvis vi vil se en liste med kun navnene på de filer, der matcher en søgning, bruger vi indstillingen -l som vist nedenfor:

grep -l 'main' *.c

Og hvis vi vil se ordet i farver, skriver vi:

grep --color palabra /ruta/al/archivo

Som du kan se kommandoen grep er en meget kraftfuldt værktøj Det er det værd især i tilfælde, hvor vi ikke kan huske, hvor vi har skrevet noget eller i programmering. Derudover hjælper det os med at finde ud af systemoplysninger på en måde, som terminalelskere kan lide. Har denne guide til kommandoen til at finde tekster været nyttig for dig grep?


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.

  1.   nordi sagde han

    Hej!
    Når du siger, at Grep også bruges til at søge efter filer, synes jeg ikke, det er korrekt, for hvis du kører grep EXPRESSION og ikke sender filen til den, venter den på dataindgangen fra standardindgangen.
    Ifølge manualsiden:
    grep søger i de navngivne input-FILER efter linjer, der indeholder et match til det givne MØNSTER. Hvis der ikke er angivet nogen filer, eller hvis filen “-” er angivet, søger grep i standardinput.
    Derfor kan du bruge det i rørledninger, som den, der parser output af / proc / cpuinfo ved at sende output fra denne kommando som input til grep, du kan søge.
    hilsener

  2.   Ana sagde han

    Meget godt indlæg.
    Du forklarer det meget godt, og du går direkte til sagen.