From 95b33b023fa618d74781dc2e88cf2ab2bcda190a Mon Sep 17 00:00:00 2001 From: Riwoldt Date: Wed, 6 May 2026 11:02:45 +0200 Subject: [PATCH] Erweiterung mit Problemen der Arbeit --- Vi.md | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/Vi.md b/Vi.md index c44b546..123f2d7 100644 --- a/Vi.md +++ b/Vi.md @@ -19,4 +19,39 @@ löscht alle Zeilen, die NICHT „baz“ enthalten löscht Zeilen, die „error“ ODER „warning“ enthalten. ## Löschen von Leerzeichen am Zeilenanfang -:%g/^$/d \ No newline at end of file +:%g/^$/d + +## Löschen von Leerzeichen/Tabs am Zeileende jeder Zeile +`:%s/\s\+$//` + +- :%s – Suchen & Ersetzen in der ganzen Datei +- \s\+ – ein oder mehrere Whitespace-Zeichen (Leerzeichen, Tabs) +- $ – am Zeilenende +- // – ersetzen durch nichts (also löschen) + +### Varianten +- :%s/ \+$//Nur Leerzeichen (keine Tabs) am Ende entfernen +- :%s/\t\+$//Nur Tabs am Ende entfernen +-:s/\s\+$//Nur in der aktuellen Zeile + +## Arbeiten mit Blöcken +Hier geht es darum das ein Block aus einer Anzahl Zeilen besteht. Die erste Zeile beinhaltet den ersten Begriff (Begriff1) zur Identifizierung des Blockes und eines zweiten Begiffes (Begriff2) der das Ende kennzeichnet, alles um diese Blöcke soll entfernt werden. + +getestete Variante: + +:%!sed -n '/Begriff1/,/Begriff2/p +Direkt im Terminal: +sed -n '/Begriff1/,/Begriff2/p' datei.txt > ausgabe.txt + +Erklärung: + +:%! – schickt den gesamten Pufferinhalt durch ein externes Kommando +sed -n – unterdrückt die normale Ausgabe +/Begriff1/,/Begriff2/p – gibt nur die Zeilen von Begriff1 **bis** Begriff2` aus (inklusive beider Zeilen) + +## Löschen von Zeilenanfang bis zu einem bestimmten Begriff + :%s/^.*\zeBegriff// + +^.* → alles vom Zeilenanfang +\ze → „hier endet der Match“ +SUCHTEXT bleibt erhalten \ No newline at end of file