我认为在文件夹中递归计算所有jpeg文件的代码是
find . -type f -name "*.jpeg" | wc -l
但我现在意识到我需要排除一些子文件夹...
例如,我的文件夹由5个子文件夹组成,每个子文件夹中都有一个名为" meh"的子文件夹。由jpeg文件组成我希望不包括在我的计数中......有人能告诉我怎么做吗?非常感谢你的指导。
答案 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没有回答这个问题。