Her er 31 nyttige eksempler på grep-kommandoer i Linux/Unix sammen med deres forklaringer og brugsscenarier:
1. Søg efter en bestemt tekst i en fil:
```
grep "search-text" filnavn
```
Forklaring :Udskriver de linjer, der matcher "søgeteksten" fra det angivne filnavn.
Eksempel :
```
grep "fejl" /var/log/system.log
```
Denne kommando søger efter alle linjer, der indeholder "fejl" i systemlogfilen.
2. Søg efter en bestemt tekst rekursivt i en mappe:
```
grep -r "search-text" mappenavn
```
Forklaring :Udfører en rekursiv søgning efter "søgetekst" i den angivne mappe og alle dens undermapper.
Eksempel :
```
grep -r "konfiguration" /etc/
```
Denne kommando søger rekursivt efter alle filer, der indeholder ordet "konfiguration" under mappen "/etc/".
3. Søg efter linjer, der matcher et regulært udtryk:
```
grep -E "regex-pattern" filnavn
```
Forklaring :Bruger regulære udtryk til at søge efter linjer, der matcher det angivne mønster.
Eksempel :
```
grep -E "^[0-9]{4}-[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1} .*" adgang.log
```
Denne kommando bruger et regulært udtryk til at finde alle linjer i "access.log"-filen, der starter med et datoformat (ÅÅÅÅ-MM-DD efterfulgt af et klokkeslæt).
4. Tæl antallet af matchende linjer:
```
grep -c "søge-tekst" filnavn
```
Forklaring :Giver en optælling af de linjer, der matcher "søgeteksten" i det angivne filnavn.
Eksempel :
```
grep -c "mislykkedes" /var/log/auth.log
```
Denne kommando tæller, hvor mange gange ordet "mislykkedes" forekommer i filen "/var/log/auth.log".
5. Udskriv de matchende linjer med linjenumre:
```
grep -n "søge-tekst" filnavn
```
Forklaring :Viser de matchende linjer sammen med deres linjenumre i det angivne filnavn.
Eksempel :
```
grep -n "advarsel" /var/log/messages
```
Denne kommando viser linjenumrene på alle linjer, der indeholder ordet "advarsel" i filen "/var/log/messages".
6. Ignorer følsomhed mellem store og små bogstaver i søgningen:
```
grep -i "search-text" filnavn
```
Forklaring :Udfører en søgning uden store og små bogstaver efter "søgetekst" i det angivne filnavn.
Eksempel :
```
grep -i "Fejl" /var/log/system.log
```
Denne kommando søger efter både store og små bogstaver af ordet "Fejl" i systemlogfilen.
7. Udelad linjer, der matcher en bestemt tekst:
```
grep -v "ekskluder-tekst" filnavn
```
Forklaring :Udskriver kun de linjer, der ikke matcher "ekskluder-teksten" i det angivne filnavn.
Eksempel :
```
grep -v "INFO" /var/log/messages | grep "FEJL"
```
Denne kommando udelukker først linjer, der indeholder "INFO" fra filen "/var/log/messages", og søger derefter efter linjer, der indeholder "ERROR" i det resterende output.
8. Søg efter et mønster, og udskriv den foregående kontekst:
```
grep -B "num" "søge-tekst" filnavn
```
Forklaring :Udskriver "num" linjer før den matchende "søgetekst" i det angivne filnavn.
Eksempel :
```
grep -B 3 "error_message" /var/log/syslog
```
Denne kommando viser de 3 linjer før hver linje, der indeholder "error_message" i systemlogfilen.
9. Søg efter et mønster, og udskriv følgende kontekst:
```
grep -Et "num" "søgetekst" filnavn
```
Forklaring :Udskriver "num" linjer efter den matchende "søgetekst" i det angivne filnavn.
Eksempel :
```
grep -A 5 "successful_login" /var/log/auth.log
```
Denne kommando udskriver 5 linjer efter hver linje, der indeholder "successful_login" i godkendelseslogfilen.
10. Udskriv de matchende linjer med filnavne:
```
grep -H "søge-tekst" *
```
Forklaring :Viser de matchende linjer sammen med navnene på de filer, der indeholder dem, når der søges i flere filer.
Eksempel :
```
grep -H "advarsel" /var/log/*.log
```
Denne kommando søger efter ordet "advarsel" i alle logfiler placeret i "/var/log/"-mappen og udskriver de matchende linjer sammen med filnavnene.
11. Udskriv kun den matchende del af linjerne:
```
grep -o "matching-pattern" filnavn
```
Forklaring :Udskriver kun den del af linjerne, der matcher det angivne "matching-pattern" i det givne filnavn.
Eksempel :
```
grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9] ]\{1,3\}" access.log
```
Denne kommando udtrækker og udskriver kun IP-adresserne fra linjerne i filen "access.log".
12. Brug OR-operatoren til at søge efter flere mønstre:
```
grep -E "pattern1|pattern2" filnavn
```
Forklaring :Søger efter linjer, der matcher enten "pattern1" eller "pattern2" i det angivne filnavn.
Eksempel :
```
grep -E "mislykkedes|succesful" /var/log/auth.log
```
Denne kommando leder efter linjer, der indeholder enten ordet "mislykkedes" eller ordet "succesfuld" i godkendelseslogfilen.
13. Afslut efter den første kamp:
```
grep -m 1 "søgetekst" filnavn
```
Forklaring :Stopper søgningen og udskriver kun den første matchende linje i det angivne filnavn.
Eksempel :
```
grep -m 1 "kritisk fejl" /var/log/messages
```
Denne kommando udskriver kun den første linje, der indeholder teksten "kritisk fejl" i filen "/var/log/messages".
14. Udskriv linjenummeret på den første matchende linje:
```
grep -b "søgetekst" filnavn
```
Forklaring :Viser byteforskydningen af den første matchende linje i det angivne filnavn.
Eksempel :
```
grep -b "startende server" /var/log/syslog
```
Denne kommando udskriver bytepositionen i filen, hvor linjen "startserver" er fundet.
15. Søg i komprimerede (.gz) filer:
```
zgrep "søgetekst" *.gz
```
Forklaring :Tillader søgning i komprimerede ".gz"-filer uden at skulle dekomprimere dem først.
Eksempel :
```
zgrep "error_message" /var/log/*.gz
```
Denne kommando søger efter "error_message" i alle ".gz"-filer placeret i "/var/log/"-mappen uden at dekomprimere dem.
16. Udskriv det matchende filnavn, hvis der er et match:
```
grep -l "søgetekst" *
```
Forklaring :Viser de filnavne, der indeholder "søgeteksten" uden at udskrive de faktiske matchende linjer.
Eksempel :
```
grep -l "kritisk fejl" /var/log/*.log
```
Denne kommando viser alle logfiler i mappen "/var/log/", der indeholder teksten "kritisk fejl".
17. Inverter den matchende adfærd:
```
grep -v "søge-tekst" filnavn
```
Forklaring :Udskriver kun de linjer, der ikke matcher "søgeteksten" i det angivne filnavn.
Eksempel :
```
grep -v "200 OK" access.log
```
Denne kommando udskriver alle linjer undtagen dem, der indeholder "200 OK" i filen "access.log".
18. Udskriv kun de linjer, der unikt indeholder en bestemt tekst:
```
grep --only-matching "search-text" filnavn
```
Forklaring :Viser kun de linjer, der udelukkende matcher "søgeteksten", og ekskluderer alle linjer, der også matcher andre mønstre i teksten.
Eksempel :
```
grep --only-matching "tilsluttet med succes" /var/log/messages
```
Denne kommando udskriver kun de linjer, der indeholder nøjagtigt "tilsluttet med succes" og ikke andre variationer som "tilsluttet databasen med succes".
19. Farvelæg den matchende tekst:
```
grep --farve "search-text" filnavn
```
Forklaring :Fremhæver den matchende tekst i forskellige farver for at forbedre læsbarheden.
Eksempel :
```
grep --farve "fejl" /var/log/syslog
```
Denne kommando udskriver linjerne, der indeholder "fejl" i systemlogfilen med den matchende tekst fremhævet i farver.
20. Vis statistik for matchende linjer:
```
grep -c "søgetekst" filnavn | wc -l
```
Forklaring :Giver antallet af matchende linjer ved hjælp af grep og bruger derefter kommandoen "wc -l" til at vise antallet.
Eksempel :
```
grep -c "advarsel" /var/log/messages | wc -l
```
Denne kommando tæller først linjerne med "advarsel" ved hjælp af grep og viser derefter optællingen.
21. Filtrer binære filer fra under søgning:
```
grep