计算大量(100k +)文件中的行数

时间:2017-09-17 12:59:27

标签: bash

我尝试使用wc -l,但它说Argument list too long。还有其他选择吗?目录中的文件总数为100k +,每个文件的行数也太多(每行200k +)。

1 个答案:

答案 0 :(得分:5)

如果您想为每个文件单独计数,请执行以下操作:

find /dir -exec wc -l {} +

-exec +很聪明,会使用部分文件列表多次调用wc,以免超出操作系统的命令行长度限制。

如果您想为所有文件添加一个组合计数,请执行以下操作:

find /dir -exec cat {} + | wc -l

通过将所有文件连接在一起,只需要进行一次wc调用。