grep kommando i Unix/Linux
Det grep> kommando i Unix/Linux er et kraftfuldt værktøj, der bruges til at søge og manipulere tekstmønstre i filer. Dens navn er afledt af ed (editor) kommandoen g/re/p (søg globalt efter et regulært udtryk og udskriv matchende linjer), som afspejler dets kernefunktionalitet. grep> bruges i vid udstrækning af både programmører, systemadministratorer og brugere for dets effektivitet og alsidighed i håndteringen af tekstdata. I denne artikel vil vi undersøge de forskellige aspekter af grep> kommando.
Indholdsfortegnelse
- Syntaks for grep-kommando i Unix/Linux
- Tilgængelige indstillinger i grep Command
- Praktisk eksempel på grep-kommando i Linux
- 1. Uafhængig søgning
- 2. Visning af antallet af matches ved hjælp af grep
- 3. Vis de filnavne, der matcher mønsteret ved hjælp af grep
- 4. Tjek efter hele ordene i en fil ved hjælp af grep
- 5. Viser kun det matchede mønster ved hjælp af grep
- 6. Vis linjenummer, mens du viser outputtet ved hjælp af grep -n
- 7. Invertering af Pattern Match ved hjælp af grep
- 8. Matche de linjer, der starter med en streng, ved hjælp af grep
- 9. Matche de linjer, der slutter med en streng, ved hjælp af grep
- 10.Specificerer udtryk med -e mulighed
- 11. -f file option Tager mønstre fra fil, en pr. linje
- 12. Udskriv n specifikke linjer fra en fil ved hjælp af grep
- 13. Søg rekursivt efter et mønster i mappen
Syntaks for grep-kommando i Unix/Linux
Den grundlæggende syntaks for ` grep`> kommandoen er som følger:
grep [options] pattern [files]
Her,
[> options> ]> : Disse er kommandolinjeflag, der ændrer adfærden af grep> .
[> pattern> ]> : Dette er det regulære udtryk, du vil søge efter.
[> file> ]> : Dette er navnet på den eller de filer, du vil søge i. Du kan angive flere filer til samtidig søgning.
Tilgængelige indstillinger i grep Command
| Muligheder | Beskrivelse |
|---|---|
| -c | Dette udskriver kun en optælling af de linjer, der matcher et mønster |
| -h | Vis de matchede linjer, men vis ikke filnavnene. |
| – jeg | Ignorerer, case for matching |
| -l | Viser kun en liste over filnavne. |
| -n | Vis de matchede linjer og deres linjenumre. |
| -i | Dette udskriver alle de linjer, der ikke matcher mønsteret |
| -e eksp | Angiver udtryk med denne indstilling. Kan bruges flere gange. |
| -f fil | Tager mønstre fra fil, et pr. linje. |
| -OG | Behandler mønster som et udvidet regulært udtryk (ERE) |
| -I | Match hele ordet |
| -O | Udskriv kun de matchende dele af en matchende linje, med hver sådan del på en separat outputlinje. |
| -A n | Udskriver søgte linje og nlines efter resultatet. |
| -B n | Udskriver søgt linje og n linje før resultatet. |
| -C n | Udskriver søgt linje og n linjer efter før resultatet. |
Eksempel på kommandoer
Betragt nedenstående fil som input.
cat>geekfile.txt
unix er fantastisk OS. unix blev udviklet i Bell labs.
lære operativsystem.
Unix linux, hvilken du vælger.
uNix er let at lære.unix er et multibruger-system. Lær unix .unix er et kraftfuldt.
Praktisk eksempel på grep-kommando i Linux
1. Uafhængig søgning
Indstillingen -i gør det muligt at søge ufølsomt efter en streng i den givne fil. Det matcher ordene som UNIX, Unix, unix.
grep -i 'UNix' geekfile.txt
Produktion:
Ufølsom søgning
2. Visning af antallet af matches ved hjælp af grep
Vi kan finde antallet af linjer, der matcher den givne streng/mønster
grep -c 'unix' geekfile.txt
Produktion:
Viser antallet af kampe
3. Vis de filnavne, der matcher mønsteret ved hjælp af grep
Vi kan bare vise de filer, der indeholder den givne streng/mønster.
grep -l 'unix' *
eller
grep -l 'unix' f1.txt f2.txt f3.xt f4.txt
Produktion:
Filnavnet, der matcher mønsteret
4. Tjek efter hele ordene i en fil ved hjælp af grep
Som standard matcher grep den givne streng/mønster, selvom den findes som en understreng i en fil. Muligheden -w til grep gør, at den kun matcher hele ordene.
grep -w 'unix' geekfile.txt
Produktion:
kontrollere hele ord i en fil
5. Viser kun det matchede mønster ved hjælp af grep
Som standard viser grep hele linjen, som har den matchende streng. Vi kan få grepet til kun at vise den matchede streng ved at bruge -o-indstillingen.
grep -o 'unix' geekfile.txt
Produktion:
Viser kun det matchede mønster
6. Vis linjenummer, mens du viser outputtet ved hjælp af grep -n
For at vise linjenummeret på filen med linjen matchet.
grep -n 'unix' geekfile.txt
Produktion:
Vis linjenummer, mens outputtet vises
7. Invertering af Pattern Match ved hjælp af grep
Du kan vise de linjer, der ikke matches med det angivne søgestrengmønster ved at bruge -v-indstillingen.
grep -v 'unix' geekfile.txt
Produktion:
Invertering af mønstermatchen
8. Matche de linjer, der starter med en streng, ved hjælp af grep
^ regulære udtryksmønster angiver starten på en linje. Dette kan bruges i grep til at matche de linjer, der starter med den givne streng eller mønster.
grep '^unix' geekfile.txt
Produktion:
Matcher de linjer, der starter med en streng
9. Matche de linjer, der slutter med en streng, ved hjælp af grep
$ regulære udtryksmønster angiver slutningen af en linje. Dette kan bruges i grep til at matche de linjer, der ender med den givne streng eller mønster.
grep 'os$' geekfile.txt
10.Specificerer udtryk med -e mulighed
Kan bruges flere gange:
grep –e 'Agarwal' –e 'Aggarwal' –e 'Agrawal' geekfile.txt
11. -f file option Tager mønstre fra fil, en pr. linje
cat pattern.txt
Agarwal
Aggarwal
Agrawal
grep –f pattern.txt geekfile.txt
12. Udskriv n specifikke linjer fra en fil ved hjælp af grep
-A udskriver den søgte linje og n linjer efter resultatet, -B udskriver den søgte linje og n linjer før resultatet, og -C udskriver den søgte linje og n linjer efter og før resultatet.
Syntaks:
grep -A[NumberOfLines(n)] [search] [file] grep -B[NumberOfLines(n)] [search] [file] grep -C[NumberOfLines(n)] [search] [file]
Eksempel:
grep -A1 learn geekfile.txt
Produktion:
Udskriv n specifikke linjer fra en fil
13. Søg rekursivt efter et mønster i D katalog
-R udskriver det søgte mønster i den givne mappe rekursivt i alle filerne.
Syntaks:
grep -R [Search] [directory]
Eksempel:
grep -iR geeks /home/geeks
Produktion:
./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.
Konklusion
I denne artikel diskuterede vi grep> kommando i Linux, som er et kraftfuldt tekstsøgningsværktøj, der bruger regulære udtryk til at finde mønstre eller tekst i filer. Det tilbyder forskellige muligheder såsom ufølsomhed for store og små bogstaver, tælle kampe og liste over filnavne. Med evnen til at søge rekursivt, bruge flag for regulære udtryk og tilpasse output, grep> er et vigtigt værktøj for Linux-brugere til effektivt at håndtere tekstrelaterede opgaver. Mestring grep> forbedrer din evne til at arbejde med tekstdata i Linux-miljøet.