Das UNIX-Kommando sed ("stream editor") ist ein Filter und dient dazu, einfache Editieroperationen auf Datenströmen auszuführen. Auf GNU Systemen wird logischerweise GNU sed verwendet, das gegenüber dem originalen Unix sed einige Erweiterungen erfahren hat.

Beispiel:

sed 's/falsch/richtig/g' < falsch.txt > richtig.txt

ersetzt "falsch" durch "richtig" im Text

sed -n 's/MemTotal: \+\([0-9]\+\) kB/\1/p' </proc/meminfo

bestimmt die Gesamtspeicher-Menge des Kernels (2.5) in kB.

sed '/pattern/p;d'

kann wie grep verwendet werden.

echo 'such die nadel im heuhaufen' | sed -n 's/.*\(nadel.*haufen\).*/\1/p'

Gibt nur die Treffer aus anstatt der kompletten Zeile

Tipps

Frage: Wie kann ich aus einer Datei mit mehreren Webadressen nur die Adressen (zwischen href=" und ") herausfiltern?

Und das gleiche nochmal für E-Mailadressen, weil ichs grad gebraucht hab. Die E-Mailadressen sind in Anführungszeichen eingeschlossen:

perl -nle 'print $1 while(/.*\"([A-Za-z.]+@[A-Za-z.]+)\".*/ig)' * 2> /dev/null > mailadressen.txt

sed (zuletzt geändert am 2007-12-23 22:47:51 durch localhost)