16

我有一个程序,我从文件中加载文本,然后根据其中一个字段对其进行过滤。我感兴趣的是这个过滤步骤之后的数据大小。

理想情况下,我将能够执行以下操作:awk '$2>=10' <myfile | du -

我可以应用过滤器并将输出保存在某处,对其调用 du,然后删除文件,但文件很大,因此写入磁盘可能需要一段时间。

认识到它du代表“磁盘使用”,我怀疑我在问一些没有意义的东西,考虑到程序是如何工作的。如果有另一个通用实用程序可以做到这一点,请提出建议!

4

3 回答 3

23

您可以将其通过管道传输wc -c到计算通过管道的字节数。

于 2012-11-16T14:36:34.573 回答
5

du代表“磁盘使用情况”。管道中的数据不会命中磁盘,因此没有“du”可以使用。改为使用wc,即“字数”。

awk '$2>=10' < myfile | wc -c

-c标志计算字节数。

于 2012-11-16T14:38:17.997 回答
0

在 zsh 中,您可以:

du -h =(cat myfile)

中的输出=(...)将保存在一个临时文件中,该文件的路径将替换=(...). 该文件将在命令完成后被删除。

于 2022-02-20T13:01:25.627 回答