bash模式中的Or条件
我正在使用:bash模式中的Or条件,bash,unix,shell,Bash,Unix,Shell,我正在使用:find搜索一些文件-名称“*.en.php”和查找-名称“*.fr.php” 我希望两个命令在同一行中,类似于:find-名称“*(en | fr).php”但它不起作用 提前感谢你的帮助 编辑 我的命令如下:find-not-path-Config-name“*.fr.php”,是否有解决方案不重复-not-path-Config?使用查找-o操作符,例如 find . -name "*.en.php" -o -name "*.fr.php" 编辑: 像这样: find . -
find搜索一些文件-名称“*.en.php”
和查找-名称“*.fr.php”
我希望两个命令在同一行中,类似于:find-名称“*(en | fr).php”
但它不起作用
提前感谢你的帮助
编辑
我的命令如下:
find-not-path-Config-name“*.fr.php”
,是否有解决方案不重复-not-path-Config
?使用查找-o
操作符,例如
find . -name "*.en.php" -o -name "*.fr.php"
编辑:
像这样:
find . -path './Config' -prune -o \( -name "*.en.php" -o -name "*.fr.php" \)
find中的默认运算符(如果是ommited)是,
,括号将名称表达式分组。我添加了-prune
以防止find递归到Config目录中。您应该能够将expression与或
运算符组合,因此:
find . -name '*.en.php' -o -name '*.fr.php' ...
您可以在man
页面中看到operators
下列出的所有运算符(和、或、非、括号等)。尝试:
find -name "*.en.php" -o -name "*.fr.php"
例如,如果您想在每个找到的文件上运行命令,则需要额外的()
(这将统计所有找到的文件中的行数):
谢谢,但它不起作用,我用find./^Config\(-name“*.fr.php”-o-name“*.en.php”\)
@jules:我搞砸了-path
,还注意到-path
需要一个完整的路径名,也许你想与-prune
一起使用?
find \( -name "*.en.php" -o . -name "*.fr.php" \) -exec cat {} \; | wc -l