BASH,猫缓冲液

时间:2012-07-09 16:58:44

标签: bash queue buffer pipe cat

cat report.txt | sed 's/<\/li>/<\/li> \n/g' > report.txt

这显然会导致文件为空。

是否有一种机制允许您在处理数据之前存储数据或存储输出直到命令执行完毕然后写入文件?

http://en.wikipedia.org/wiki/Pipeline_(Unix)#Implementation

“...接收程序每秒只能接受100个字节,但不会丢失数据。而是将发送程序的输出保存在队列中。当接收程序准备好读取数据时,操作系统从队列中发送数据,然后从队列中删除该数据。“

听起来应该有一个简单的技巧可以将其加载到队列中而不是立即将其写入文件,然后在命令完成后将其卸载?

非常感谢!

1 个答案:

答案 0 :(得分:2)

您需要的是修改in place

sed -i 's/<\/li>/<\/li> \n/g' report.txt