Könnte jemand diesen Befehl für mich erklären:"sed" Befehl in bash
cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
echo "Hello World"
EOF
Was bedeutet das "sed" Befehl tun?
Könnte jemand diesen Befehl für mich erklären:"sed" Befehl in bash
cat | sed -e 's,%,$,g' | sudo tee /etc/init.d/dropbox << EOF
echo "Hello World"
EOF
Was bedeutet das "sed" Befehl tun?
sed
ist die Stream EDitor. Es kann einen ganzen Stapel von really cool things tun, aber die häufigste ist Text-Ersatz.
Der s,%,$,g
Teil der Befehlszeile ist der sed
Befehl auszuführen. Die s
steht für Ersatz, die ,
Zeichen sind Begrenzer (andere Zeichen können verwendet werden; /
, :
und @
sind beliebt). Das %
ist das passende Muster (hier ein wörtliches Prozentzeichen) und das $
ist das zweite passende Muster (hier ein literales Dollarzeichen). Die g
am Ende bedeutet g
lobally ersetzen auf jeder Zeile (sonst würde es nur die erste Übereinstimmung aktualisieren).
Aus irgendeinem Grund ersetzt sed alle Zeilen für mich, nicht nur die erste, wenn ich das 'g' am Ende weglasse. z.B. 'sudo sed -i 's, aktiviert = 0, aktiviert = 1,'/etc/yum.repos.d/epel.repo 'in einem Amazon AWS-Image mit der sed-Version 4.2.1 – Programster
sed wird immer auf jeder Zeile ausgeführt. Die Option "g" ersetzt alle Übereinstimmungen in dieser Zeile anstelle der ersten Übereinstimmung in dieser Zeile. –
Es liest Hello World
(cat
), ersetzt alle (g
) Vorkommen von %
von $
und (über) schreibt sie in /etc/init.d/dropbox
als root.
Hier sed
ersetzt alle Vorkommen von %
mit $
in seinem Standard-Eingang.
Als Beispiel
$ echo 'foo%bar%' | sed -e 's,%,$,g'
wird "foo $ bar $" produzieren.
sed ist ein Stream-Editor. Ich würde sagen, versuchen Mann sed.If Sie diesen Mann nicht Seite in Ihrem System diese URL verweisen gefunden:
+1 für die Manpage. –
sed ist die Abkürzung für "stream editor" - es bearbeitet Ströme von Bytes/Zeichen. –
Sie hätten das als Kommentar zu meiner Antwort fragen können, ich wäre froh gewesen, es zu erweitern. – Benoit