Linux - Mit Strings arbeiten
Inhaltsverzeichnis:
Dateien durchsuchen
Eine Datei nach mehreren Begriffen durchsuchen
grep -E 'reject|error|warning|fatal|panic' /var/log/mail.log
Alternative:
egrep '(reject|error|warning|fatal|panic):' /var/log/mail.log
Suche nach Inhalt, zeige Zeilen davor und danach
grep -i "Suchbegriff" -A 5 -B 5
Zeigt zusätzlich zum Treffer auch die 5 Zeilen davor und danach.
Eine Datei gefiltert ausgeben mit RegEx
Alles ausgeben was einem bestimmten RegEx entspricht:
grep -E -i '^nameserver 172.*' /etc/resolv.conf
Alles ausblenden, was mit # anfängt (“invert-match”):
grep -v "^#" /etc/resolv.conf
Strings auslesen
Den ersten Teil einer Ausgabe extrahieren
sha256sum dateiname | awk '{print $1}'
Alternative mit cut
sha256sum dateiname | cut -d ' ' -f 1
Strings ersetzen
String innerhalb einer Datei ersetzen
sed -i "s/alt/neu/g" datei.txt'
Lösche alle Zeilen in einer Datei, die mit einem Hashtag beginnen
sed -i "/^#/d" datei.txt
Nach Dateien suchen und Inhalt ersetzen
find . -iname '*.yml' | xargs sed -i 's/alt/neu/g'
Zeilen in Datei löschen mit sed
| Befehl | Beschreibung |
|---|---|
| Lösche Zeile 2 und 5 | sed -i '2d;5d' datei.txt |
| Lösche Zeile 3-6 | sed -i '3,6d' datei.txt |
| Lösche die letzte Zeile | sed -i '$d' datei.txt |
| Lösche von Zeile 5 bis zum Ende | sed -i '5,$d' datei.txt |