find ./ -name '*.JPG' -type f | wc -l
得到1231和
1231
find ./ -name '*.jpg' -type f | wc -l
给出1377我如何做一个正则表达式来找到所有的JPG?我试过了
1377
find ./ -type f -regex ".*\.[JPGjpg]$" | wc -l
但没有类似的作品
uurv41yg1#
你的正则表达式被冲掉了。但是通过使用不同的选项,它可以被简化为不那么复杂/令人生畏。
find . -E -type f -iregex '.*\.jpe?g'
方括号创建一个字符类--[JPG|jpg]匹配一个字符,它是大写或小写的J、P、G或竖线(是的,方括号之间的所有内容都是按字面意思理解的)中的一个。使用圆括号进行分组;尽管这足够简单而不需要任何分组。还要注意使用-iregex来进行不区分大小写的正则表达式匹配。如评论中所述,例如在MacOS / BSD中,-E选项对于启用?等ERE结构将表达式标记为可选是必要的。
[JPG|jpg]
-iregex
-E
?
1条答案
按热度按时间uurv41yg1#
你的正则表达式被冲掉了。但是通过使用不同的选项,它可以被简化为不那么复杂/令人生畏。
方括号创建一个字符类--
[JPG|jpg]
匹配一个字符,它是大写或小写的J、P、G或竖线(是的,方括号之间的所有内容都是按字面意思理解的)中的一个。使用圆括号进行分组;尽管这足够简单而不需要任何分组。还要注意使用-iregex
来进行不区分大小写的正则表达式匹配。如评论中所述,例如在MacOS / BSD中,
-E
选项对于启用?
等ERE结构将表达式标记为可选是必要的。