【发布时间】:2015-08-27 03:28:56
【问题描述】:
我想列出以数字开头并以“.c”扩展名结尾的文件。以下是使用的 find 命令。但是,它不给 预期的输出。
命令:
find -type f -regex "^[0-9].*\\.c$"
【问题讨论】:
-
.匹配任何字符。尝试[.]或\.另外,-regex匹配完整路径,而不是文件名。 -
我已经尝试过了。但它不起作用
-
@Mohan 正如 knittl 所说,find 不只是打印文件名,所以这样的事情会起作用:
find -type f -regex '^[.][/][0-9].*.c' -
这也没有给出预期的输出。因为“.//..../”。只有在同一目录中执行命令时,您的语法才有效。对于递归搜索,以下是给出预期输出的命令。 find -type f -regex ".*/[0-9].*\.c$".
-
您可以在这里省略正则表达式,因为它似乎使事情变得复杂,而只需使用 glob 模式,如
find -type f -name '[0-9]*.c'...
标签: regex linux bash shell unix