Sie können das -iFlag korrekt verwenden, indem Sie ihm ein Suffix zum Hinzufügen zur gesicherten Datei hinzufügen. Erweitern Sie Ihr Beispiel:
sed -i.bu 's/oldword/newword/' file1.txt
Sie erhalten zwei Dateien: eine mit dem Namen file1.txt, der die Ersetzung enthält, und eine mit dem Namen file1.txt.bu, der den ursprünglichen Inhalt enthält.
Leicht gefährlich
Wenn Sie die Originaldatei destruktiv überschreiben möchten, verwenden Sie Folgendes:
sed -i '' 's/oldword/newword/' file1.txt
^ note the space
Aufgrund der Art und Weise, wie die Zeile analysiert wird, ist zwischen dem Optionsflag und seinem Argument ein Leerzeichen erforderlich, da das Argument die Länge Null hat.
Abgesehen davon, dass Sie möglicherweise Ihr Original wegwerfen, sind mir keine weiteren Gefahren bewusst, wenn Sie auf diese Weise ausgetrickst werden. Es sollte jedoch beachtet werden, dass sedThe Unix Way ™ (IMHO) , wenn dieser Aufruf von Teil eines Skripts ist, sedzerstörungsfrei zu verwenden ist, zu testen, ob es sauber beendet wurde, und erst dann die fremde Datei zu entfernen.
-iFlagge ausprobieren ?