就地編輯
就地編輯是大多數近期系統中常見但非標準的擴充套件。
來自 BSD sed
手冊
(這樣的部分出現在所有當前的 BSD sed
手冊中,以及它們的衍生物)
建議在編輯檔案時不建議使用零長度擴充套件,因為在磁碟空間耗盡的情況下,它可能會出現損壞或部分內容,等等。
不要忘記強大的 ed
sed
和 sed
的就地編輯功能肯定有用,但是當 UNIX 標準擴充套件時,我們應該總是問為什麼舊的 UNIX 標準不包含該功能。雖然 UNIX 並不完美,但工具的正交性和完整性已經發展到接近完美,至少在 1970 年左右可見的目的: 文字編輯和自動文字編輯在那個時候肯定是可見的。
實際上,sed
的想法不是編輯檔案,而是編輯流。這就是為什麼名稱 sed
是流編輯器的簡短形式。拿掉 s
,你就得到了實際用於檔案編輯的工具 :ed
:
printf 'g/what to replace/s//with what to replace/g\nw\nq\n' | ed file
或者 cat file_edit_commands | ed file
。