Här är 31 användbara grep-kommandoexempel i Linux/Unix tillsammans med deras förklaringar och användningsscenarier:
1. Sök efter en specifik text i en fil:
```
grep "sök-text" filnamn
```
Förklaring :Skriver ut raderna som matchar "söktexten" från det angivna filnamnet.
Exempel :
```
grep "error" /var/log/system.log
```
Detta kommando söker efter alla rader som innehåller "fel" i systemloggfilen.
2. Sök efter en specifik text rekursivt i en katalog:
```
grep -r "sök-text" katalognamn
```
Förklaring :Utför en rekursiv sökning efter "söktext" i den angivna katalogen och alla dess underkataloger.
Exempel :
```
grep -r "konfiguration" /etc/
```
Detta kommando söker rekursivt efter alla filer som innehåller ordet "konfiguration" under katalogen "/etc/".
3. Sök efter rader som matchar ett reguljärt uttryck:
```
grep -E "regex-pattern" filnamn
```
Förklaring :Använder reguljära uttryck för att söka efter linjer som matchar det angivna mönstret.
Exempel :
```
grep -E "^[0-9]{4}-[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1} .*" access.log
```
Detta kommando använder ett reguljärt uttryck för att hitta alla rader i "access.log"-filen som börjar med ett datumformat (ÅÅÅÅ-MM-DD följt av en tid).
4. Räkna antalet matchande rader:
```
grep -c "sök-text" filnamn
```
Förklaring :Ger ett antal rader som matchar "söktexten" i det angivna filnamnet.
Exempel :
```
grep -c "misslyckades" /var/log/auth.log
```
Detta kommando räknar hur många gånger ordet "misslyckades" förekommer i filen "/var/log/auth.log".
5. Skriv ut de matchande raderna med radnummer:
```
grep -n "sök-text" filnamn
```
Förklaring :Visar de matchande raderna tillsammans med deras radnummer i det angivna filnamnet.
Exempel :
```
grep -n "varning" /var/log/meddelanden
```
Detta kommando visar radnumren för alla rader som innehåller ordet "varning" i filen "/var/log/messages".
6. Ignorera skiftlägeskänslighet i sökningen:
```
grep -i "sök-text" filnamn
```
Förklaring :Utför en skiftlägesokänslig sökning efter "söktext" i det angivna filnamnet.
Exempel :
```
grep -i "Fel" /var/log/system.log
```
Detta kommando söker efter både versaler och gemener förekomster av ordet "Error" i systemloggfilen.
7. Uteslut rader som matchar en specifik text:
```
grep -v "exclude-text" filnamn
```
Förklaring :Skriver endast ut de rader som inte matchar "exclude-text" i det angivna filnamnet.
Exempel :
```
grep -v "INFO" /var/log/meddelanden | grep "ERROR"
```
Detta kommando exkluderar först rader som innehåller "INFO" från filen "/var/log/messages", och söker sedan efter rader som innehåller "ERROR" i den återstående utdata.
8. Sök efter ett mönster och skriv ut föregående sammanhang:
```
grep -B "num" "sök-text" filnamn
```
Förklaring :Skriver ut "num" rader före den matchande "söktext" i det angivna filnamnet.
Exempel :
```
grep -B 3 "error_message" /var/log/syslog
```
Detta kommando visar de 3 raderna före varje rad som innehåller "error_message" i systemloggfilen.
9. Sök efter ett mönster och skriv ut följande sammanhang:
```
grep -Ett "num" "sök-text" filnamn
```
Förklaring :Skriver ut "num" rader efter den matchande "söktext" i det angivna filnamnet.
Exempel :
```
grep -A 5 "successful_login" /var/log/auth.log
```
Detta kommando skriver ut 5 rader efter varje rad som innehåller "successful_login" i autentiseringsloggfilen.
10. Skriv ut de matchande raderna med filnamn:
```
grep -H "sök-text" *
```
Förklaring :Visar de matchande raderna tillsammans med namnen på filerna som innehåller dem när du söker efter flera filer.
Exempel :
```
grep -H "varning" /var/log/*.log
```
Detta kommando söker efter ordet "varning" i alla loggfiler som finns i katalogen "/var/log/" och skriver ut de matchande raderna tillsammans med filnamnen.
11. Skriv bara ut den matchande delen av raderna:
```
grep -o "matchande mönster" filnamn
```
Förklaring :Skriver ut endast den del av raderna som matchar det angivna "matchningsmönstret" i det angivna filnamnet.
Exempel :
```
grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9] ]\{1,3\}" access.log
```
Detta kommando extraherar och skriver endast ut IP-adresserna från raderna i filen "access.log".
12. Använd OR-operatorn för att söka efter flera mönster:
```
grep -E "pattern1|pattern2" filnamn
```
Förklaring :Söker efter rader som matchar antingen "pattern1" eller "pattern2" i det angivna filnamnet.
Exempel :
```
grep -E "failed|successful" /var/log/auth.log
```
Detta kommando letar efter rader som innehåller antingen ordet "misslyckades" eller ordet "lyckad" i autentiseringsloggfilen.
13. Avsluta efter första matchen:
```
grep -m 1 "sök-text" filnamn
```
Förklaring :Slutar söka och skriver bara ut den första matchande raden i det angivna filnamnet.
Exempel :
```
grep -m 1 "kritiskt fel" /var/log/messages
```
Detta kommando skriver bara ut den första raden som innehåller texten "kritiskt fel" i filen "/var/log/messages".
14. Skriv ut radnumret för den första matchande raden:
```
grep -b "sök-text" filnamn
```
Förklaring :Visar byteoffset för den första matchande raden inom det angivna filnamnet.
Exempel :
```
grep -b "startserver" /var/log/syslog
```
Detta kommando skriver ut bytepositionen i filen där raden "startserver" finns.
15. Sök i komprimerade (.gz) filer:
```
zgrep "sök-text" *.gz
```
Förklaring :Tillåter sökning inom komprimerade ".gz"-filer utan att behöva dekomprimera dem först.
Exempel :
```
zgrep "error_message" /var/log/*.gz
```
Detta kommando söker efter "error_message" i alla ".gz"-filer som finns i katalogen "/var/log/" utan att dekomprimera dem.
16. Skriv ut det matchande filnamnet om det finns en matchning:
```
grep -l "sök-text" *
```
Förklaring :Listar filnamnen som innehåller "söktexten" utan att skriva ut de faktiska matchande raderna.
Exempel :
```
grep -l "kritiskt fel" /var/log/*.log
```
Detta kommando listar alla loggfiler i katalogen "/var/log/" som innehåller texten "kritiskt fel".
17. Invertera matchningsbeteendet:
```
grep -v "sök-text" filnamn
```
Förklaring :Skriver endast ut de rader som inte matchar "söktexten" i det angivna filnamnet.
Exempel :
```
grep -v "200 OK" access.log
```
Detta kommando skriver ut alla rader utom de som innehåller "200 OK" i filen "access.log".
18. Skriv bara ut rader som unikt innehåller en specifik text:
```
grep --only-matching "search-text" filnamn
```
Förklaring :Visar bara de rader som uteslutande matchar "söktexten" och exkluderar alla rader som även matchar andra mönster i texten.
Exempel :
```
grep --only-matching "lyckat ansluten" /var/log/messages
```
Det här kommandot skriver bara ut raderna som innehåller exakt "lyckat ansluten" och inte andra varianter som "lyckat ansluten till databasen".
19. Färglägg den matchande texten:
```
grep --color "sök-text" filnamn
```
Förklaring :Markerar den matchande texten i olika färger för att förbättra läsbarheten.
Exempel :
```
grep --färg "fel" /var/log/syslog
```
Detta kommando skriver ut raderna som innehåller "fel" i systemloggfilen med den matchande texten markerad i färg.
20. Visa statistik för matchande rader:
```
grep -c "sök-text" filnamn | wc -l
```
Förklaring :Ger antalet matchande rader med grep och använder sedan kommandot "wc -l" för att visa antalet.
Exempel :
```
grep -c "varning" /var/log/meddelanden | wc -l
```
Detta kommando räknar först raderna med "varning" med grep och visar sedan antalet.
21. Filtrera bort binära filer medan du söker:
```
grep