won*_*ng2 210 find regular-expression
我可以jpg使用以下方法获取所有图像:
find . -name "*.jpg"
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能将png文件添加到结果中呢?
Sha*_*dur 246
-o在不同参数之间使用标志。
find ./ -type f \( -iname \*.jpg -o -iname \*.png \) 奇迹般有效。
注意有必须是支架和它的内容之间的空间,否则将无法正常工作。
解释:
-type f - 只搜索文件(不是目录)\(& \)- 需要-type f应用于所有参数-o - 逻辑或运算符-iname- 类似-name,但匹配不区分大小写Gil*_*il' 111
您可以结合标准-o的通过Shadur建议。请注意,-o它的优先级低于并列,因此您可能需要括号。
find . -name '*.jpg' -o -name '*.png'
find . -mtime -7 \( '*.jpg' -o -name '*.png' \) # all .jpg or .png images modified in the past week
Run Code Online (Sandbox Code Playgroud)
在 Linux 上,您可以使用-regex更简洁的方式组合扩展。默认的正则表达式语法是 Emacs(基本正则表达式加上一些扩展,例如\|交替);有一个选项可以切换到扩展 regexps。
find -regex '.*\.\(jpg\|png\)'
find -regextype posix-extended -regex '.*\.(jpg|png)'
Run Code Online (Sandbox Code Playgroud)
在 FreeBSD、NetBSD 和 OSX 上,您可以-regex结合使用-E扩展正则表达式。
find -E . -regex '.*\.(jpg|png)'
Run Code Online (Sandbox Code Playgroud)
小智 53
这是更正确的:
find . -iregex '.*\.\(jpg\|gif\|png\|jpeg\)$'
Run Code Online (Sandbox Code Playgroud)
sor*_*rin 15
明确地说,适用于 Linux、Unix 和 macOS 风格的唯一选项是:
find -E . -regex '.*\.(jpg|png)'
Run Code Online (Sandbox Code Playgroud)
那是因为 OS X 版本略有不同,但这对于编写在大多数平台上运行良好的东西很重要。
| 归档时间: |
|
| 查看次数: |
199544 次 |
| 最近记录: |