1. ホーム
  2. bash

[解決済み] find "の結果をカウントするのに最適な方法は何ですか?

2022-05-15 20:38:15

質問

私の現在の解決策は find <expr> -exec printf '.' \; | wc -c ですが、10000以上の結果がある場合、これはあまりにも時間がかかります。これを行うより速い/良い方法はないのでしょうか?

どのように解決するのですか?

代わりにこれを試してみてください (要 find 's -printf のサポート)。

find <expr> -type f -printf '.' | wc -c

行数を数えるより確実で早いでしょう。

なお、私が使っている find 's printf は、外部コマンドではありません。


少しベンチしてみましょう.

$ ls -1
a
e
l
ll.sh
r
t
y
z

私のスニペットベンチマーク:

$ time find -type f -printf '.' | wc -c
8

real    0m0.004s
user    0m0.000s
sys     0m0.007s

完全な行数で:

$ time find -type f | wc -l
8

real    0m0.006s
user    0m0.003s
sys     0m0.000s

というわけで、私のソリューションはより高速です =) (重要なのは real の行です)。