【发布时间】:2014-06-10 22:18:26
【问题描述】:
我需要使用不支持的程序prog 修改文件就地。
prog $file > $file.temp
cat $file.temp > $file
rm $file.temp
我想一步完成,没有临时文件。这看起来不错,但不起作用:
cat <(prog $1) > $1
如果我有办法缓冲管道的内容(阻塞直到写入结束),它会工作,例如:
cat <(prog $1 | buffer_until_close) > $1
我怎样才能做到这一点,或者以其他方式实现所需的语法?
【问题讨论】:
-
Sponge怎么样
-
海绵应该在moreutils nowadays
-
为什么讨厌临时文件?真的没有就地编辑文件这样的事情。似乎这样做的程序只是隐藏了创建临时文件并用它替换原始文件的细节。
-
我不反对临时文件。我反对我自己的代码明确处理它们:) 这是表达问题,而不是过程问题