Grep-kommando: kraftfullt verktyg för att hitta text från Terminal

Grep-kommando

Nästan alla som har en dator eller arbetar med en kommer att känna till kortkommandot Ctrl + F för att hitta text. "F" står för "Sök", "att hitta" på engelska och kan till exempel användas för att hitta text på en webbsida. Den här genvägen finns också i många applikationer, det finns program som använder "B" för "Sök, men dessa genvägar fungerar bara om vi är inne i applikationen och med filen öppen. I Linux har vi mycket kraftfulla verktyg som vi kan starta från terminalen och om vi vill hitta någon text som finns i vårt team kommer vi att använda kommandot grep.

grep Det är ett kommando som hjälper oss att hitta text i filen som vi anger. Dess namn kommer från g / re / p, ett kommando som fungerar för något liknande i en Unix / Linux textredigerare. Som många andra kommandon, grep Har många tillgängliga alternativ som vi kommer att lägga till i form av bokstäver och var och en kommer att tjäna en annan uppgift. Genom att kombinera dessa alternativ kommer vi att kunna utföra komplexa sökningar i en eller flera filer. Här visar vi dig allt du behöver veta.

med grep vi hittar vilken text som helst i vilken fil som helst

Först och främst kommer vi att förklara de tillgängliga alternativen:

  • -i: skiljer inte mellan stora och små bokstäver.
  • -w: tvinga den att bara hitta specifika ord.
  • -v: väljer de rader som inte matchar.
  • -n: visar radens nummer med de begärda orden.
  • -h: tar bort prefixet från Unix-filnamnet i utdata.
  • -r: söker i kataloger rekursivt.
  • -R: som -r men följ alla symlänkar.
  • -l: visar endast filnamn med valda rader.
  • -c- Visar bara ett antal per fil av de valda raderna.
  • -Färg: Visar matchande mönster i färger.

I bilden som du har rubriken för den här artikeln har jag letat efter ordet "Bilder" i filen "830.desktop" som finns i den vägen. Som ni ser har jag skrivit:

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

Tänk på att i den här artikeln kommer vi att skriva exempel som måste ändras enligt våra sökinställningar. När vi säger "File", "Word", etc, kommer vi att hänvisa till filen med dess sökväg. Om jag bara hade skrivit "grep Images 830.desktop" skulle jag ha fått ett meddelande om att filen inte existerar. Eller så skulle det vara om inte filen fanns i rotkatalogen.

Andra exempel skulle vara:

  • grep -i images /home/pablinux/Documentos/830.desktop, där "bilder" skulle vara ordet vi vill hitta och resten filen med dess sökväg. Detta exempel skulle söka efter "bilder" i filen "830.desktop" skiftlägeskänslig.
  • grep -R-bilder: det skulle söka i alla rader i en katalog och alla dess underkataloger där ordet "bilder" finns.
  • grep -c exempel test.txt: detta skulle leta efter oss och visa det totala antalet gånger "exempel" visas i en fil som heter "test.txt.

Med grep vi kan också söka efter filer

Om det vi vill är att hitta filen 830.desktop, skriver vi följande kommando:

grep 830.desktop

Detta kommer att utföra en sök efter filen «830.desktop» i vår personliga mappMed andra ord, om filen finns i en annan användares personliga mapp kommer den inte att hittas. Detta är det mest normala i världen eftersom en användare inte har behörighet att komma åt innehållet hos en annan utan sitt lösenord.

Hur man utför rekursiva sökningar

grep det tillåter oss också utföra sökningar med förbehåll för återkommande regler eller riktlinjer. Läs till exempel alla filer i varje katalog som innehåller ordet "Pablinux". För detta kommer vi att skriva:

grep -r Pablinux /home/

Nåväl:

grep -R Pablinux /home/

Vi kommer att se resultaten för "Pablinux" på en separat rad som föregås av namnet på filen där den hittades. Om vi ​​inte vill se filnamnen i datautdata använder vi alternativet -h (från "göm"; dölj):

grep -h -R Pablinux /home/

Vi kan gå med i alternativen tillsammans och skriva "-hR" utan citat.

Hur man gör exakta ordsökningar

Ibland finns det filer som innehåller det vi vill söka efter något annat. Till exempel kan detta hända oss i sammansatta ord och genom att söka efter "skogar" kan vi hitta "rangers". Om vi ​​vill hitta ett exakt ord vi använder alternativet -w:

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

Ovanstående kommando skulle söka efter "skogar", ignorera rangers, i filen "vacation.txt" i den angivna sökvägen. Om det vi vill är att söka efter två olika ord använder vi kommandot egrep:

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

Vet hur många gånger ett ord visas i en fil

grep det kan också räkna hur många gånger ett ord visas i en fil. För detta använder vi alternativet -c:

grep -c prueba /ruta/al/archivo

Att lägga till alternativet -n vad vi ser är numret på raden där ordet visas.

Omvänd uppslag

Vi kan också göra det motsatta, det vill säga sök efter rader som inte innehåller ett ord. För detta kommer vi att använda alternativet -v, vilket skulle vara följande:

grep -v la ruta/al/archivo

Ovanstående kommando visar alla rader som inte innehåller ordet "the". Detta kan vara till nytta i dokument eller listor där ett ord upprepas många gånger och av någon anledning måste vi komma åt resten av raderna.

Åtkomst till systeminformation med grep

PC-modell

grep inte bara kan den söka i filer. Det är också kunna visa systeminformation. I föregående skärmdump kan vi se hur den visar oss vilken modell av PC vi har (jag vet att det inte är den mest kraftfulla bärbara datorn i världen). För detta har vi använt kommandot:

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

Nåväl:

grep -i 'Model' /proc/cpuinfo

Om det vi vill är att se namnen på skivenheterna skriver vi:

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

Hur man listar endast matchande filnamn

Om vi ​​vill se en lista med endast namnen på filerna som matchar en sökning använder vi alternativet -l som visas nedan:

grep -l 'main' *.c

Och om vi vill se ordet i färger kommer vi att skriva:

grep --color palabra /ruta/al/archivo

Som du kan se kommandot grep är en mycket kraftfullt verktyg Det är värt det, särskilt i fall där vi inte kommer ihåg var vi har skrivit något eller i programmering. Dessutom hjälper det oss att ta reda på systeminformation på ett sätt som terminalälskare kommer att tycka om. Har den här guiden på kommandot för att hitta texter varit användbar för dig grep?


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   nordi sade

    Hej!
    När du säger att Grep också används för att söka efter filer, tycker jag inte att det är korrekt, för om du kör grep EXPRESSION och inte skickar filen till den, väntar den på datainmatningen från standardingången.
    Enligt manualsidan:
    grep söker i de namngivna inmatningsfilerna efter rader som innehåller en matchning till det angivna MÖNSTER. Om inga filer anges, eller om filen “-” ges, söker grep standardinmatningen.
    Så du kan använda den i rörledningar, som den du analyserar utdata från / proc / cpuinfo genom att skicka utdata från detta kommando som inmatning till grep, du kan göra sökningen.
    hälsningar

  2.   Ana sade

    Mycket bra inlägg.
    Du förklarar det väldigt bra och du går direkt till saken.