Grep 正则表达式来匹配特殊格式的文件

Grep 正则表达式来匹配特殊格式的文件,grep,Grep,我有以下文件名: 当x是一个数字时(x可以是0到100之间的数字) 比如说 fileX --> file1 fileXblabla --> file1blabla fileX.X --> file5.3 fileX.Xblabla --> file2.9blabla fileX 我的问题是如何匹配目录下的以下每种文件(通过ls和正则表达式或其他方式) 比如说 fileX --> file1 fileXblabla --> file1blabla file

我有以下文件名: 当x是一个数字时(x可以是0到100之间的数字)

比如说

fileX --> file1
fileXblabla --> file1blabla
fileX.X --> file5.3
fileX.Xblabla --> file2.9blabla
 fileX
我的问题是如何匹配目录下的以下每种文件(通过ls和正则表达式或其他方式)

比如说

fileX --> file1
fileXblabla --> file1blabla
fileX.X --> file5.3
fileX.Xblabla --> file2.9blabla
 fileX
在目录下,我们希望获得所有文件,如:file1、file2或file3…..file100

 fileXblabla
在目录下,我们希望获得所有文件,如:file1bla或file2bla或file3bla…..file100bla

 fileX.X
在目录下,我们希望获得所有文件,如:file1.1或file2.1或file3.1…..file100.100

 fileX.Xblabla

在目录下,我们希望获得所有文件,如:file1.1bla或file2.1bla或file3.1bla…..file100.100bla

以下正则表达式将匹配所有4种模式:

file(\d{1,3})(\w*)(?:\.(\d{0,3})(\w*))?
fileX中的X将位于后参考1
文件xballa中的blablabla将位于后参考2
fileX.Y中的Y将位于后参考3
fileX.Yblabla中的blablabla位于后面的引用4

如果您需要更多帮助,请提出并添加评论。

尝试以下方法:

^file(100|[1-9]\d|\d)(\.(100|[1-9]\d|\d))?(bla)*$

这将匹配从0到999的文件号。如果你想把它限制在0到100个,那么你就把这个(\d{1,3{{1,3})替换为新口市的(100 124[1-1-9][1-9][1-9][1-9][1-1-9][1-1-9][1-3]d\d 124;[1-1-9][1-1-3\d \124;d\d 124; d.\d.\d \d |[1-1-1\d.\3\d \124; d.\d \d.\d\d \| d \d.\d 1243 | d.\3\d | d.\d 124 | d.\d.\d [1-9]\d |\d))?(bla)*$-bash:意外标记附近的语法错误`('any help??ls | grep“^文件([0-9]\{1,3})([[:alnum:]]*)(\[0-9]\{1,3\[:alnum:][unum:]*)$”如果您能给出如何使用ls命令执行此语法的示例,则应可在shell提示符下执行此操作(这是POSIX complient)