Was passiert mit meinem Sed-Befehl?

Was passiert mit meinem Sed-Befehl?

Mache gerade ein kleines Experiment in der Shell.

Meine Befehle sind die folgenden:

echo 'This a cool butterfly' > test
sed 's/butterfly/parrot/g' test > test

Aber wenn ich dann einen einfachen Cat-Befehl auf meiner Testdatei ausführe, ist die Datei leer. Warum?

Antwort1

Sie können nicht gleichzeitig in eine Datei lesen und schreiben. Im nächsten Schritt liest sed Ihre Datei „test“, aber Sie schreiben gleichzeitig in diese Datei, sodass das Ergebnis eine leere Datei ist.

Versuche dies:

sed -i 's/butterfly/parrot/g' test 

Damit wird die Datei direkt an Ort und Stelle bearbeitet.

verwandte Informationen