Seitenanfang

Mini sed Howto

Dieser Post wurde aus meiner alten WordPress-Installation importiert. Sollte es Darstellungsprobleme, falsche Links oder fehlende Bilder geben, bitte einfach hier einen Kommentar hinterlassen. Danke.


sed ist das Universaltool zur massenweisen Dateimanipulation, allerdings schlägt sich seine unglaubliche Flexibilität auch in einer komplizierten Nutzung wieder, hier sind ein paar wichtige Anwendungsfälle und Aufrufbeispiele.

sed arbeitet mit "normalen" regulären Ausdrücken, nicht der mächtigeren Perl-RegEx Engine, der Unterschied wird beispielsweise bei der Nutzung von Klammern wichtig.

Eine Zeile aus allen Dateien löschen

Der Parameter -i sorgt dafür, dass sed Änderungen direkt in die gelesene Datei zurückschreibt (anstatt sie auszugeben), mit dem RegEx-Suffix "d" kann man alle Zeilen löschen die dem Suchstring entsprechen:
sed -i '/Foo::Bar::noop()/d' myfile.pl
sed -i '/function __construct() { }/d' objectfile.php
So lassen sich leicht viele z.B. Perl-Scripte oder PHP-Dateien aufräumen.

Einen Text in allen Dateien ändern

Möchte man beispielsweise sein persönliches Manifest der aktuellen Beziehungssituation anpassen, reicht ein

sed -i 's/Anna/Mareike/g' manifest/kapitel/*.txt

...oder einfach eine Variable umbenennen:

sed -i 's/\$foobar/\$foobaz/g' cgi-bin/script.pl
Aber vorsicht, dabei würde auch $foobarbaz in $foobazbaz geändert werden.

Teilweise änderungen

sed -i 's/Foo\([A-Z][a-z]\)Bar/F \1 B/g' file.txt
Ersetzt alle FooXyBar wobei X ein beliebiger Großbuchstabe und y ein beliebiger Kleinbuchstabe sein darf, diese Xy-Kombination wird dann als \1 in die Ersetzung übernommen.

 

 

Noch keine Kommentare. Schreib was dazu

Schreib was dazu

Die folgenden HTML-Tags sind erlaubt:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>