Linux - 计算超过 n 行的文件数

Linux - Count in the number of files that have more than a n lines

如何计算目录下(包括其子目录下的文件)超过n行的文件数? 我正在查看 find,因为它允许在目录树中进行递归搜索

一个简单的例子是管道查找:

#! /bin/bash
n=4
find . -type f | \
    while read -r file; do
        [[ $(wc -l < $file) -lt $n ]] || echo $file;
    done

您可以将输出添加到数组中并根据需要对其进行格式化。

您可以在每个文件上使用 find 到 运行 wc。将输出通过管道传输到 head 以删除“总计”行并通过 awk 过滤掉小文件。

find . -type f -exec wc -l {} + \
| head -n-1 \
| awk -v n=40000 '(>n){print}'

您可以使用 find -exec 到 运行 wc -l,然后将输出通过管道传输到 awk 以处理条目,因此:

find . -type f -exec wc -l '{}' \; | awk -v cnt="11" '>cnt { print }'

运行 wc -l 在找到的每个文件上,然后使用 awk 并将“n”值作为变量 cnt 传递。然后将第一个 space 分隔字段与每行的 cnt 进行比较(在本例中为 11),然后如果它更大,则打印该行。

统计超过100行的文件数

$ find path/to/dir -type f -exec wc -l {} + | awk '>100{c++} END{print c?c-1:c}'

用您的号码替换 100。