2016-05-31 73 views
0

當我用-i選項(替換文件)對非常大的文件執行sed時,有什麼方法可以知道如何處理目標文件。 例如在/ tmp中創建中間文件,或在內存中處理並交換等。有誰知道sed -i的實現?

+1

'sed -i'創建一個臨時文件並在完成時將其移動到原始文件上。如果你想真正修改文件,可以試試'ed'而不是 –

+3

你也可以[查看源代碼](http://git.savannah.gnu.org/cgit/sed.git/tree/sed),或者使用像[strace](https://en.wikipedia.org/wiki/Strace)這樣的工具來查看該工具正在做什麼。 – larsks

+0

我正在投票結束這個問題,因爲這與編程無關。 – edmz

回答

1

strace表明即使是小文件也讀取原始文件,結果寫入臨時文件,然後重命名爲原始文件的名稱文件。 所以我會假設這是大文件的相同行爲:將創建一個臨時文件。