Sed: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 24: Zeile 24:
 
*sed "s/Erwin$/Peter/g" test.dat
 
*sed "s/Erwin$/Peter/g" test.dat
 
;Ersetze in von der 2. bis zur 3. Zeile Erwin am Zeilenende durch Peter
 
;Ersetze in von der 2. bis zur 3. Zeile Erwin am Zeilenende durch Peter
*sed "2,3s/Erwin/Peter/" test.dat
+
*sed "2,3s/Erwin$/Peter/" test.dat
  
 
=Links=
 
=Links=
 
*https://de.wikipedia.org/wiki/Sed_(Unix)
 
*https://de.wikipedia.org/wiki/Sed_(Unix)
 
*https://wiki.ubuntuusers.de/sed/
 
*https://wiki.ubuntuusers.de/sed/

Version vom 27. November 2019, 14:06 Uhr

Grundlegendes

sed steht für Stream EDitor und ist ein Unix-Werkzeug, mit dem Text-Datenströme bearbeitet werden können. Der Datenstrom kann auch aus einer Datei gelesen werden. Im Gegensatz zu einem Texteditor wird die Ursprungsdatei aber nicht verändert.

Im Gegensatz zu einem interaktiven Texteditor, wie etwa dem vi, wird sed mittels eines Skripts gesteuert.

Der sed-Befehlssatz orientiert sich an jenem des zeilenorientierten Texteditors ed. Dabei werden für die Text-Durchmusterung laut der POSIX-Spezifikation eine bestimmte Abart der Regular Expressions, sogenannte (POSIX-) Basic Regular Expressions (BRE) verwendet.

Arbeitsweise

sed kann sowohl innerhalb einer Pipeline als auch auf Dateien arbeiten. Ausgaben erfolgen grundsätzlich auf <stdout>, Fehlermeldungen auf <stderr>.

Test Dateil

  • cat test.dat
Erwin Ruediger 
Karl Erwin
Michael Rudi Erwin Karl Erwin
Tanja Michaela 
Olga Tanja Frieda

Beispiele

Ersetze in jeder Zeile das erste Erwin durch Peter
  • sed "s/Erwin/Peter/" test.dat
Ersetze in jeder Zeile jedes Erwin durch Peter
  • sed "s/Erwin/Peter/g" test.dat
Ersetze in jeder Zeile Erwin am Zeilenanfang durch Peter
  • sed "s/^Erwin/Peter/g" test.dat
Ersetze in jeder Zeile Erwin am Zeilenende durch Peter
  • sed "s/Erwin$/Peter/g" test.dat
Ersetze in von der 2. bis zur 3. Zeile Erwin am Zeilenende durch Peter
  • sed "2,3s/Erwin$/Peter/" test.dat

Links