grep-opdracht in Unix/Linux

grep-opdracht in Unix/Linux

De grep> command in Unix/Linux is een krachtig hulpmiddel dat wordt gebruikt voor het zoeken en manipuleren van tekstpatronen in bestanden. De naam is afgeleid van het ed (editor) commando g/re/p (algemeen zoeken naar reguliere expressies en overeenkomende regels afdrukken), wat de kernfunctionaliteit ervan weerspiegelt. grep> wordt veel gebruikt door programmeurs, systeembeheerders en gebruikers vanwege de efficiëntie en veelzijdigheid bij het verwerken van tekstgegevens. In dit artikel gaan we dieper in op de verschillende aspecten van de grep> commando.

Inhoudsopgave

Syntaxis van grep-opdracht in Unix/Linux

De basissyntaxis van de ` grep`> opdracht is als volgt:

  grep [options] pattern [files] 

Hier,

[> options> ]> : Dit zijn opdrachtregelvlaggen die het gedrag van wijzigen grep> .

[> pattern> ]> : Dit is de reguliere expressie waarnaar u wilt zoeken.

[> file> ]> : Dit is de naam van de bestanden waarin u wilt zoeken. U kunt meerdere bestanden opgeven om gelijktijdig te zoeken.

Opties beschikbaar in grep-opdracht

Opties

Beschrijving

-C

Hiermee wordt alleen het aantal lijnen afgedrukt dat overeenkomt met een patroon

-H

Geef de overeenkomende regels weer, maar niet de bestandsnamen.

i

Negeert, reden voor matching

-l

Toont alleen een lijst met bestandsnamen.

-N

Geef de overeenkomende regels en hun regelnummers weer.

-in

Hiermee worden alle lijnen afgedrukt die niet overeenkomen met het patroon

-e exp

Specificeert expressie met deze optie. Kan meerdere keren gebruikt worden.

-f bestand

Neemt patronen uit het bestand, één per regel.

-EN

Behandelt patroon als een uitgebreide reguliere expressie (ERE)

-In

Match het hele woord

-O

Druk alleen de overeenkomende delen van een overeenkomende regel af, waarbij elk onderdeel op een afzonderlijke uitvoerregel staat.

-Een

Drukt de gezochte regel en regels af na het resultaat.

-B n

Drukt de gezochte regel en n regel vóór het resultaat af.

-C n

Drukt de gezochte regel en n regels na vóór het resultaat af.

Voorbeeldopdrachten

Beschouw het onderstaande bestand als invoer.

cat>geekfile.txt 

Unix is ​​een geweldig besturingssysteem. Unix is ​​ontwikkeld in Bell-labs.

besturingssysteem leren.

Unix Linux welke je kiest.

uNix is ​​gemakkelijk te leren. Unix is ​​een besturingssysteem voor meerdere gebruikers. Leer Unix. Unix is ​​een krachtig besturingssysteem.

Praktisch voorbeeld van grep-opdracht in Linux

Met de optie -i kunt u ongevoelig zoeken naar hoofdletters en kleine letters in het opgegeven bestand. Het komt overeen met woorden als UNIX, Unix, unix.

grep -i 'UNix' geekfile.txt 

Uitgang:

Hoofdletterongevoelig zoeken

Hoofdletterongevoelig zoeken

2. Het aantal overeenkomsten weergeven met behulp van grep

We kunnen het aantal regels vinden dat overeenkomt met de gegeven string/patroon

grep -c 'unix' geekfile.txt 

Uitgang:

Weergave van het telnummer van de wedstrijden

Weergave van het telnummer van de wedstrijden

3. Geef de bestandsnamen weer die overeenkomen met het patroon met behulp van grep

We kunnen alleen de bestanden weergeven die de gegeven string/patroon bevatten.

grep -l 'unix' * 

of

grep -l 'unix' f1.txt f2.txt f3.xt f4.txt 

Uitgang:

De bestandsnaam die overeenkomt met het patroon

De bestandsnaam die overeenkomt met het patroon

4. Controleren op hele woorden in een bestand met behulp van grep

Standaard komt grep overeen met de opgegeven tekenreeks/patroon, zelfs als deze als subtekenreeks in een bestand wordt aangetroffen. De optie -w voor grep zorgt ervoor dat alleen de hele woorden overeenkomen.

grep -w 'unix' geekfile.txt 

Uitgang:

hele woorden in een bestand controleren

hele woorden in een bestand controleren

5. Alleen het overeenkomende patroon weergeven Met behulp van grep

Standaard geeft grep de gehele regel weer die de overeenkomende string bevat. We kunnen ervoor zorgen dat de grep alleen de overeenkomende string weergeeft door de optie -o te gebruiken.

grep -o 'unix' geekfile.txt 

Uitgang:

Alleen het overeenkomende patroon wordt weergegeven

Alleen het overeenkomende patroon wordt weergegeven

6. Toon regelnummer terwijl de uitvoer wordt weergegeven met behulp van grep -n

Om het regelnummer van het bestand weer te geven waarvan de regel overeenkomt.

grep -n 'unix' geekfile.txt 

Uitgang:

Toon regelnummer terwijl de uitvoer wordt weergegeven

Toon regelnummer terwijl de uitvoer wordt weergegeven

7. De patroonovereenkomst omkeren met behulp van grep

Met de optie -v kunt u de regels weergeven die niet overeenkomen met het opgegeven zoektekenreekspatroon.

grep -v 'unix' geekfile.txt 

Uitgang:

De patroonovereenkomst omkeren

De patroonovereenkomst omkeren

8. Matchen van de regels die beginnen met een string met behulp van grep

Het reguliere expressiepatroon ^ specificeert het begin van een regel. Dit kan in grep worden gebruikt om de lijnen te matchen die beginnen met de gegeven string of het gegeven patroon.

grep '^unix' geekfile.txt 

Uitgang:

Overeenkomen met de regels die beginnen met een tekenreeks

Overeenkomen met de regels die beginnen met een tekenreeks

9. Matchen van de regels die eindigen met een string met behulp van grep

Het reguliere expressiepatroon $ specificeert het einde van een regel. Dit kan in grep worden gebruikt om de lijnen te matchen die eindigen met de gegeven string of het gegeven patroon.

grep 'os$' geekfile.txt 

10.Specificeert een expressie met de optie -e

Meerdere keren te gebruiken:

grep –e 'Agarwal' –e 'Aggarwal' –e 'Agrawal' geekfile.txt 

11. -f bestandsoptie Neemt patronen uit het bestand, één per regel

cat pattern.txt 

Agarwal
Aggarwal
Agrawal

grep –f pattern.txt geekfile.txt 

12. Druk n specifieke regels af vanuit een bestand met behulp van grep

-A drukt de gezochte regel en n regels na het resultaat af, -B drukt de gezochte regel en n regels vóór het resultaat af, en -C drukt de gezochte regel en n regels na en vóór het resultaat af.

Syntaxis:

grep -A[NumberOfLines(n)] [search] [file] grep -B[NumberOfLines(n)] [search] [file] grep -C[NumberOfLines(n)] [search] [file] 

Voorbeeld:

grep -A1 learn geekfile.txt 

Uitgang:

Print n specifieke regels uit een bestand

Print n specifieke regels uit een bestand

13. Zoek recursief naar een patroon in de D ictorium

-R drukt het gezochte patroon in de gegeven map recursief af in alle bestanden.

Syntaxis:

grep -R [Search] [directory] 

Voorbeeld :

grep -iR geeks /home/geeks 

Uitgang:

./geeks2.txt:Well Hello Geeks ./geeks1.txt:I am a big time geek ---------------------------------- -i to search for a string case insensitively -R to recursively check all the files in the directory. 

Conclusie

In dit artikel bespraken we de grep> command in Linux, een krachtig hulpmiddel voor het zoeken naar tekst dat reguliere expressies gebruikt om patronen of tekst in bestanden te vinden. Het biedt verschillende opties, zoals hoofdletterongevoeligheid, het tellen van overeenkomsten en het vermelden van bestandsnamen. Met de mogelijkheid om recursief te zoeken, reguliere expressievlaggen te gebruiken en de uitvoer aan te passen, grep> is een essentieel hulpmiddel voor Linux-gebruikers om tekstgerelateerde taken efficiënt uit te voeren. Beheersen grep> verbetert uw vermogen om met tekstgegevens te werken in de Linux-omgeving.