Rainer S.: Unix und reguläre Asudrücke

Beitrag lesen

Hallo,

sed -e "s%^./%%"

Er wird irgendwie gebraucht um Daten von einem Rechner auf den Server zu übertragen, aber ich hab keine Ahnung was dieser BEfehl genau macht.
Vor allem: diese Prozentzeichen, was sollen die da???

sed ist der "Stream Editor". Dieser nimmt eine ihm übergebene Datei bzw. den Datenstrom aus der Standardeingabe,
führt damit bestimmte Aktionen durch und schreibt das Ergebnis auf die Standardausgabe.
Die Aktionen werden oft durch reguläre Ausdrücke bestimmt, wie auch in diesem Fall.
Der Ausdruck s%^./%% bewirkt, daß jeder Fund des Ausdrucks ^./
(ein beliebiges Zeichen am Zeilenanfang, gefolgt von einem /)
durch einen Leerstring ersetzt, also im Prinzip gelöscht wird.
Das Prozentzeichen ist ein benutzerdefiniertes Begrenzungszeichen.
sed fat als Standard das Begrenzungszeichen /, welches jedoch in manchen Ausdrücken
unpraktisch wäre, da man jedes Vorkommen von / im Ausdruck maskieren müßte.
Deswegen kann man ein Beliebiges Begrenzungszeichen verwenden.
Das wird einfach dadurch gewählt, daß es hinter dem s steht.

Übrigens, vermutlich willst Du eigentlich s%^./%% verwenden, um die Zeichen
./ am Zeilenanfang zu löschen. Der Punkt hat ja die Sonderbedeutung "ein beliebiges Zeichen".

HTH

Rainer