init at home

This commit is contained in:
2026-03-27 12:41:00 +01:00
commit 352c352056
58 changed files with 13083 additions and 0 deletions
+202
View File
@@ -0,0 +1,202 @@
# grep - Textsuche in Dateien
Der `grep`-Befehl durchsucht Dateien oder Textströme nach Mustern (Strings oder reguläre Ausdrücke).
## Grundsyntax
```bash
grep [OPTIONEN] MUSTER [DATEI...]
```
## Einfache Suche
```bash
grep "suchtext" datei.txt
```
In mehreren Dateien:
```bash
grep "suchtext" *.txt
```
Rekursiv in Verzeichnissen:
```bash
grep -r "suchtext" /pfad/zum/verzeichnis
```
## Wichtige Optionen
### Groß-/Kleinschreibung
```bash
grep -i "suchtext" datei.txt # case-insensitive
```
### Zeilen mit Kontext
```bash
grep -A 3 "suchtext" datei.txt # 3 Zeilen danach
grep -B 3 "suchtext" datei.txt # 3 Zeilen davor
grep -C 3 "suchtext" datei.txt # 3 Zeilen davor und danach
```
### Nur Dateinamen anzeigen
```bash
grep -l "suchtext" *.txt # Dateien mit Treffer
grep -L "suchtext" *.txt # Dateien ohne Treffer
```
### Zeilennummern anzeigen
```bash
grep -n "suchtext" datei.txt
```
### Anzahl der Treffer
```bash
grep -c "suchtext" datei.txt
```
### Invertierte Suche (nicht enthalten)
```bash
grep -v "suchtext" datei.txt
```
Zeigt alle Zeilen, die den Suchtext NICHT enthalten.
### Ganzes Wort
```bash
grep -w "wort" datei.txt
```
Findet "wort", aber nicht "worte" oder "hauptwort".
## Reguläre Ausdrücke
### Einfache Regex (Basic)
```bash
grep "^Start" datei.txt # Zeilen, die mit "Start" beginnen
grep "Ende$" datei.txt # Zeilen, die mit "Ende" enden
grep "^$" datei.txt # Leere Zeilen
```
### Extended Regex
```bash
grep -E "fehler|warnung" datei.txt # fehler ODER warnung
grep -E "[0-9]{3}-[0-9]{4}" datei.txt # Telefonnummern
grep -E "^(root|admin)" /etc/passwd # Zeilen mit root oder admin am Anfang
```
### Perl-kompatible Regex
```bash
grep -P "\d{3}-\d{4}" datei.txt
```
## Praktische Anwendungsfälle
### Logfiles durchsuchen
```bash
grep -i "error" /var/log/syslog
grep -E "error|warning|critical" /var/log/syslog
```
### Mit Zeitstempel
```bash
grep "2025-11-07" /var/log/application.log
```
### Konfigurationsdateien
```bash
# Alle nicht-kommentierten Zeilen
grep -v "^#" /etc/ssh/sshd_config | grep -v "^$"
```
### In komprimierten Dateien
```bash
zgrep "suchtext" datei.log.gz
```
### Mit find kombinieren
```bash
find . -name "*.log" -exec grep -l "ERROR" {} +
```
### Mehrere Muster aus Datei
```bash
grep -f muster.txt datei.txt
```
**muster.txt:**
```
fehler
warnung
critical
```
## Pipe-Verwendung
```bash
ps aux | grep firefox
cat datei.txt | grep -v "^#" | grep "wichtig"
dmesg | grep -i usb
```
## Farbige Ausgabe
```bash
grep --color=auto "suchtext" datei.txt
```
Alias in `.bashrc` setzen:
```bash
alias grep='grep --color=auto'
```
## Alternative Tools
- **ripgrep (rg)** - sehr schnell, modern, empfohlen
- **ag (The Silver Searcher)** - schneller als grep
- **ack** - für Code-Suche optimiert
Beispiel mit ripgrep:
```bash
rg "suchtext" /pfad # automatisch rekursiv, ignoriert .gitignore
```
## Zusammenfassung wichtiger Optionen
| Option | Beschreibung |
|--------|--------------|
| `-i` | Case-insensitive |
| `-r` | Rekursiv |
| `-n` | Mit Zeilennummern |
| `-c` | Anzahl der Treffer |
| `-l` | Nur Dateinamen |
| `-v` | Invertiert (nicht enthalten) |
| `-w` | Ganzes Wort |
| `-E` | Extended Regex |
| `-A/-B/-C` | Kontext anzeigen |
## Siehe auch
- [[find]] - Dateien nach Namen/Eigenschaften suchen
- [[sed]] - Stream-Editor für Textmanipulation
- [[awk]] - Textverarbeitung und Datenextraktion
- [[ls]] - Ausgabe von ls filtern