我需要使用不支持它的程序prog
修改文件in-place。Bash:緩存整個stdin,然後輸出
prog $file > $file.temp
cat $file.temp > $file
rm $file.temp
我想在沒有臨時文件的情況下在一個步驟中完成此操作。這看起來不錯,但將無法正常工作:
cat <(prog $1) > $1
它將工作,如果我有一個緩衝管的內容(阻塞,直到寫結束閉合)的方式,例如:
cat <(prog $1 | buffer_until_close) > $1
我該如何做到這一點,或者以其他方式實現所需的語法?
[Sponge](http://linux.die.net/man/1/sponge) – iruvar
Sponge應該在[moreutils nowadays](https://github.com/madx/moreutils/blob/master/debian/control) – Hastur
爲什麼厭惡臨時文件?真的沒有編輯文件這樣的東西;似乎這樣做的程序只是隱藏創建臨時文件的細節並用它替換原始文件。 – chepner