
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.