snippets:shell
Differences
This shows you the differences between two versions of the page.
| snippets:shell [2025-06-25 20:09] – Seite mit den Abschnitten „OpenSSH“ und „journalctl“ erstellt malte70 | snippets:shell [2025-11-12 01:28] (current) – Snippet „Einrückung ab der zweiten Zeile“ im neuen Abschnitt „Textverarbeitung“ hinzugefügt. malte70 | ||
|---|---|---|---|
| Line 81: | Line 81: | ||
| --follow \ | --follow \ | ||
| --unit=NetworkManager.service | --unit=NetworkManager.service | ||
| + | </ | ||
| + | |||
| + | ===== Textverarbeitung ===== | ||
| + | |||
| + | **TODO: Einführungstext** | ||
| + | |||
| + | ==== Einrückung ab der zweiten Zeile ==== | ||
| + | |||
| + | Mit dem folgenden '' | ||
| + | |||
| + | <code bash> | ||
| + | sed " | ||
| + | </ | ||
| + | |||
| + | Aber was ist, wenn die Einrückung erst ab der zweiten Zeile erscheinen soll? | ||
| + | |||
| + | Im folgenden Beispiel soll eine mehrzeilige Meldung in eine Logdatei geschrieben werden: Vor der ersten Zeile soll der Zeitstempel stehen, jede weitere Zeile soll mit Leerzeichen um die Länge des Zeitstempel-Prefix eingerückt werden. | ||
| + | |||
| + | Dafür wird der Text von einem kleinen '' | ||
| + | |||
| + | <code bash> | ||
| + | # Die zu loggende Nachricht | ||
| + | msg=" | ||
| + | with multiple lines." | ||
| + | |||
| + | |||
| + | # Zeitstempel und dessen Länge | ||
| + | timestamp=$(date --iso-8601=seconds) | ||
| + | timestamp_length=$(echo -n " | ||
| + | |||
| + | # Der Prefix für alle Zeilen außer der ersten. | ||
| + | # Enthält $timestamp_length mal ein Leerzeichen, | ||
| + | line_prefix=$(yes " " | head -$((timestamp_length + 4)) | tr -d " | ||
| + | |||
| + | |||
| + | # Der Zeitstempel ohne abschließenden Zeilenumbruch | ||
| + | printf " | ||
| + | |||
| + | # Ausgabe der Nachricht $msg inklusive Prefix | ||
| + | # Das awk-Skript prüft eine if-Klausel ob die Zeilennummer NR mindestens 2 ist, und gibt dann die ursprüngliche Zeile $0 mit einem Prefix aus, und falls nicht ohne den Prefix. | ||
| + | |||
| + | # Lesbare Variante mit Zeilenumbrüchen und Einrückungen: | ||
| + | echo " | ||
| + | if (NR >= 2) { | ||
| + | print \" | ||
| + | } else { | ||
| + | print $0; | ||
| + | } | ||
| + | }" | ||
| + | |||
| + | # Kompakte Variante in einer einzelnen Zeile: | ||
| + | echo " | ||
| </ | </ | ||
snippets/shell.txt · Last modified: by malte70
