Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 我怎样才能找到匹配特定次数的模式?_Regex_Linux_Command Line_Find_Pattern Matching - Fatal编程技术网

Regex 我怎样才能找到匹配特定次数的模式?

Regex 我怎样才能找到匹配特定次数的模式?,regex,linux,command-line,find,pattern-matching,Regex,Linux,Command Line,Find,Pattern Matching,我有一堆扩展名为数字的文件,它们的位数不同。我想找到用三个数字显示所有内容的方法,但找不到一个好方法。以下内容可以使用,但看起来很笨重: find . -name "*.[0-9][0-9][0-9]" 似乎应该有某种方法来指定模式出现的次数。如果我想用三个或四个数字捕捉所有内容,而不是两个或五个数字呢?我应该把这个可笑的模式和a-o开关放在一起吗?把重复量放在大括号里: [0-9]{3} 不要为此使用-name开关。您需要使用find-regex find . -regex "^.*\.[

我有一堆扩展名为数字的文件,它们的位数不同。我想找到用三个数字显示所有内容的方法,但找不到一个好方法。以下内容可以使用,但看起来很笨重:

find . -name "*.[0-9][0-9][0-9]"

似乎应该有某种方法来指定模式出现的次数。如果我想用三个或四个数字捕捉所有内容,而不是两个或五个数字呢?我应该把这个可笑的模式和a-o开关放在一起吗?

把重复量放在大括号里:

[0-9]{3}

不要为此使用
-name
开关。您需要使用
find-regex

find . -regex "^.*\.[0-9]\{3,4\}$"

这将查找所有扩展名为3或4位的文件名。

谢谢,但posix样式的模式匹配似乎不适用于查找。这很有效。我之前试过类似的方法,但不小心漏掉了星号而不是句号。谢谢!不客气,很高兴它成功了。(不知道为什么有人在没有任何评论的情况下否决了它)。我也不确定。我注意到另一个答案似乎也在没有评论的情况下被否决了(虽然它不是真的正确,所以这可能就是为什么它被否决的原因)。当人们在没有评论的情况下否决了一个有效的解决方案时,这是令人恼火的。