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

这显然会导致一个空文件。

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

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

“...接收程序每秒可能只能接受 100 个字节,但不会丢失任何数据。相反,发送程序的输出被保存在一个队列中。当接收程序准备读取数据时,操作系统从队列中发送其数据,然后从队列中删除该数据。”

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

非常感谢!

4

1 回答 1

2

您需要的是就地编辑:

sed -i 's/<\/li>/<\/li> \n/g' report.txt 
于 2012-07-09T17:02:06.187 回答