find/globbing:我在这里做错了什么?
find/globbing: what am I doing wrong here?
希望是一个快速的问题,我很恼火,以至于我自己似乎无法解决这个问题:
我正在尝试列出文件名中只有主要版本的所有 Mac 库,如
libFoo.X.dylib
其中 X 是小数(在我的例子中是一位数)。
我正在使用
find /path/to/here -name "lib[^.]*.[0-9].dylib"
认为这应该给我包含以下内容的文件名
- 以 "lib" 开头且没有点的部分
- 一个点
- 一个数字
- .dylib 扩展名
但是我也得到了 libfoo.0.1.2.dylib
类型的文件,所以我的假设一定是哪里出了问题。
您可以将此 find
与 -regex
选项一起使用:
find /path/to/here -regex '.*/lib[^.]*\.[0-9]\.dylib'
变化是:
- 使用
-regex
选项匹配正则表达式
.*/
开头允许在文件名 之前匹配路径名
- 必须在正则表达式中对点进行转义以匹配文字点
希望是一个快速的问题,我很恼火,以至于我自己似乎无法解决这个问题:
我正在尝试列出文件名中只有主要版本的所有 Mac 库,如
libFoo.X.dylib
其中 X 是小数(在我的例子中是一位数)。
我正在使用
find /path/to/here -name "lib[^.]*.[0-9].dylib"
认为这应该给我包含以下内容的文件名 - 以 "lib" 开头且没有点的部分 - 一个点 - 一个数字 - .dylib 扩展名
但是我也得到了 libfoo.0.1.2.dylib
类型的文件,所以我的假设一定是哪里出了问题。
您可以将此 find
与 -regex
选项一起使用:
find /path/to/here -regex '.*/lib[^.]*\.[0-9]\.dylib'
变化是:
- 使用
-regex
选项匹配正则表达式 .*/
开头允许在文件名 之前匹配路径名
- 必须在正则表达式中对点进行转义以匹配文字点