Satu hal yang perlu diperhatikan, sedtidak dapat menulis file sendiri sebagai satu-satunya tujuan sed adalah untuk bertindak sebagai editor pada "aliran" (yaitu pipa stdin, stdout, stderr, dan >&nbuffer lain , soket dan sejenisnya). Dengan mengingat hal ini, Anda dapat menggunakan perintah lain teeuntuk menulis output kembali ke file. Pilihan lain adalah membuat tambalan dari menyalurkan konten ke dalamnya diff.
Metode tee
sed '/regex/' <file> | tee <file>
Metode tambalan
sed '/regex/' <file> | diff -p <file> /dev/stdin | patch
MEMPERBARUI:
Juga, perhatikan bahwa tambalan akan membuat file berubah dari baris 1 dari output diff:
Tambalan tidak perlu tahu file mana yang akan diakses karena ini ditemukan di baris pertama dari keluaran dari diff:
$ echo foobar | tee fubar
$ sed 's/oo/u/' fubar | diff -p fubar /dev/stdin
*** fubar 2014-03-15 18:06:09.000000000 -0500
--- /dev/stdin 2014-03-15 18:06:41.000000000 -0500
***************
*** 1 ****
! foobar
--- 1 ----
! fubar
$ sed 's/oo/u/' fubar | diff -p fubar /dev/stdin | patch
patching file fubar
-iadalah pilihan di gnu sed, tetapi tidak dalam sed standar. Namun, itu mengalirkan konten ke file baru dan kemudian mengganti nama file sehingga bukan yang Anda inginkan.