我有一个包含文件jobs_1,jobs_2 ... jobs_77的文件夹。我用了
find . -name "job_[0-9]{1,2}" -type f
列出这些文件,但没有输出。有什么问题?
答案 0 :(得分:3)
或者,友好:
find . -regextype posix-awk -regex ".*job_[0-9]{1,2}.*" -type f
注意:例如posix-extended在这种情况下会产生相同的结果;但是天生懒惰我选择了awk,因为它更短:}
答案 1 :(得分:1)
问题中命令的第一个问题:
find .-name "job_[0-9]{1,2}" -type f
...您正在搜索以字符串-regextype posix-awk
而不是-regex
开头的文件,因此上述命令将找不到任何名为files s 的文件 _1,工作 s _2 ...工作 s _77。
使用的正确命令是:
find . -regextype posix-awk -regex ".*jobs_[0-9]{1,2}.*" -type f -exec basename {} \;
find
- 此选项更改posix-awk
理解的正则表达式语法,允许-exec basename {} \;
程序使用find . -regextype posix-awk -regex ".*jobs_[0-9]{1,2}.*" -type f
正则表达式。find -type f
- 将-regex
的结果从文件的完整路径转换为文件名,以便只在结果中显示文件名。这使find -type f
-regex
选项的结果与nivoslider
的结果类似,而Banner title
选项只显示文件名。