unix:递归计算jpeg文件的数量,除了每个文件夹中的一个子文件夹?

时间:2016-12-20 21:07:20

标签: unix recursion count

我认为在文件夹中递归计算所有jpeg文件的代码是

find . -type f -name "*.jpeg" | wc -l

但我现在意识到我需要排除一些子文件夹...

例如,我的文件夹由5个子文件夹组成,每个子文件夹中都有一个名为" meh"的子文件夹。由jpeg文件组成我希望不包括在我的计数中......有人能告诉我怎么做吗?

非常感谢你的指导。

3 个答案:

答案 0 :(得分:0)

由于find包含每个文件的相对路径,您可以这样做:

find . -type f -name "*.jpeg" | grep -vc /meh/

答案 1 :(得分:0)

使用任何 grep 变体来过滤find的输出。 在您这样做时,请使用grep, -c 中的 count 选项。 -v 是反向逻辑:仅列出 not 与给定模式匹配的那些。

find . -type f -name "*.jpeg" | egrep -c -v "/meh/"

答案 2 :(得分:0)

您可以使用查找option -prune-regex来执行此操作。

find . -name meh -prune -o -name '*.jpeg' -print | wc -l
find . -not -regex '.*/meh/.*' -a -name '*.jpeg' -print | wc -l

很奇怪@Prune没有回答这个问题。