Sed Beispiele: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „== Sed – Beispiele == * Konkrete Anwendungsfälle für Sed: Substitutionen, Zeilenmanipulation und kombinierte Befehle. == Substitution == <syntaxhighlight…“)
 
Zeile 1: Zeile 1:
== Sed – Beispiele ==
+
= Sed – Beispiele =
  
 
* Konkrete Anwendungsfälle für Sed: Substitutionen, Zeilenmanipulation und kombinierte Befehle.
 
* Konkrete Anwendungsfälle für Sed: Substitutionen, Zeilenmanipulation und kombinierte Befehle.
  
 
== Substitution ==
 
== Substitution ==
<syntaxhighlight lang="bash">
 
 
* sed 's/foo/bar/' beispiel.txt
 
* sed 's/foo/bar/' beispiel.txt
</syntaxhighlight>
 
 
   → Ersetzt das erste Vorkommen von "foo" durch "bar" pro Zeile
 
   → Ersetzt das erste Vorkommen von "foo" durch "bar" pro Zeile
  
<syntaxhighlight lang="bash">
 
 
* sed 's/foo/bar/g' beispiel.txt
 
* sed 's/foo/bar/g' beispiel.txt
</syntaxhighlight>
 
 
   → Ersetzt alle Vorkommen von "foo" durch "bar" pro Zeile
 
   → Ersetzt alle Vorkommen von "foo" durch "bar" pro Zeile
  
 
== Zeilenbereichsoperationen ==
 
== Zeilenbereichsoperationen ==
<syntaxhighlight lang="bash">
 
 
* sed '2,4s/foo/bar/' beispiel.txt
 
* sed '2,4s/foo/bar/' beispiel.txt
</syntaxhighlight>
 
 
   → Ersetzt "foo" durch "bar" nur in den Zeilen 2–4
 
   → Ersetzt "foo" durch "bar" nur in den Zeilen 2–4
  
<syntaxhighlight lang="bash">
 
 
* sed -n '3,5p' datei.txt
 
* sed -n '3,5p' datei.txt
</syntaxhighlight>
 
 
   → Gibt nur die Zeilen 3 bis 5 aus
 
   → Gibt nur die Zeilen 3 bis 5 aus
  
 
== Löschen und Einfügen ==
 
== Löschen und Einfügen ==
<syntaxhighlight lang="bash">
 
 
* sed '/^#/d' config.txt
 
* sed '/^#/d' config.txt
</syntaxhighlight>
 
 
   → Löscht alle Kommentarzeilen, die mit '#' beginnen
 
   → Löscht alle Kommentarzeilen, die mit '#' beginnen
  
<syntaxhighlight lang="bash">
 
 
* sed '2i\Neue Zeile vor Zeile 2' datei.txt
 
* sed '2i\Neue Zeile vor Zeile 2' datei.txt
 
* sed '3a\Zeile nach Zeile 3' datei.txt
 
* sed '3a\Zeile nach Zeile 3' datei.txt
</syntaxhighlight>
 
  
 
== Kombination mehrerer Befehle ==
 
== Kombination mehrerer Befehle ==
<syntaxhighlight lang="bash">
 
 
* sed -e 's/foo/bar/g' -e '/^#/d' datei.txt
 
* sed -e 's/foo/bar/g' -e '/^#/d' datei.txt
</syntaxhighlight>
 
  
 
== Pipes mit Sed ==
 
== Pipes mit Sed ==
<syntaxhighlight lang="bash">
 
 
* ls -l | sed 's/^/Datei: /'
 
* ls -l | sed 's/^/Datei: /'
</syntaxhighlight>
 
  
 
== Hinweise ==
 
== Hinweise ==

Version vom 18. Oktober 2025, 08:03 Uhr

Sed – Beispiele

  • Konkrete Anwendungsfälle für Sed: Substitutionen, Zeilenmanipulation und kombinierte Befehle.

Substitution

  • sed 's/foo/bar/' beispiel.txt
 → Ersetzt das erste Vorkommen von "foo" durch "bar" pro Zeile
  • sed 's/foo/bar/g' beispiel.txt
 → Ersetzt alle Vorkommen von "foo" durch "bar" pro Zeile

Zeilenbereichsoperationen

  • sed '2,4s/foo/bar/' beispiel.txt
 → Ersetzt "foo" durch "bar" nur in den Zeilen 2–4
  • sed -n '3,5p' datei.txt
 → Gibt nur die Zeilen 3 bis 5 aus

Löschen und Einfügen

  • sed '/^#/d' config.txt
 → Löscht alle Kommentarzeilen, die mit '#' beginnen
  • sed '2i\Neue Zeile vor Zeile 2' datei.txt
  • sed '3a\Zeile nach Zeile 3' datei.txt

Kombination mehrerer Befehle

  • sed -e 's/foo/bar/g' -e '/^#/d' datei.txt

Pipes mit Sed

  • ls -l | sed 's/^/Datei: /'

Hinweise

  • Mit -i wird die Datei direkt verändert.
  • Sed-Befehle können sequentiell oder kombiniert ausgeführt werden.
  • Sed ist ideal für Skripte, da es automatisierte Textmanipulation ermöglicht.

Aufgaben

  • Ersetze in einer Datei alle Vorkommen von "Test" durch "Prüfung".
  • Lösche alle Zeilen, die mit "//" beginnen.
  • Füge in Zeile 1 einen Kommentar "# Start" ein.
  • Kombiniere zwei Befehle: Ersetze "foo" durch "bar" und lösche alle Zeilen, die mit "#" beginnen.