BASH,cat缓冲区
问题描述:
cat report.txt | sed 's/<\/li>/<\/li> \n/g' > report.txt
这显然会导致一个空文件。BASH,cat缓冲区
是否有一种机制允许您在处理数据之前存储数据或存储输出,直到命令完成执行并写入文件?
http://en.wikipedia.org/wiki/Pipeline_(Unix)#Implementation:。
” ...接收程序可能仅能够接受每秒100个字节,但没有数据丢失而是,发送程序的输出在队列中保持当接收程序已准备好读取数据,操作系统将从队列中发送数据,然后从队列中删除该数据。“
听起来像应该有一个简单的技巧来加载到队列中,而不是立即写入文件,然后在命令完成后卸载它?
非常感谢!
这是可行的。 我想通了: 'echo“$(cat [file] | cmd1 | cmd2)”> [file]' 同样适用,因为子shell首先执行。 – pnovotnak 2012-07-09 17:11:02