Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash模式中的Or条件_Bash_Unix_Shell - Fatal编程技术网

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