regex - “查找”使用带变量的正则表达式

标签 regex bash find

请帮我解决以下问题:

让它成为三个文件:

file-aaa.sh 
file-bbb.sh
file-xxx.sh

在 bash 脚本中我有变量

$a=aaa 
$b=bbb

现在,我想执行如下操作:

find . -name "file-[$a|$b].sh"

并期望在输出中得到两个文件。 我做错了什么?

最佳答案

你可以使用这个发现:

find . -name "file-$a.sh" -o -name "file-$b.sh"

使用 -regex 选项将其合并为一个:

在 OSX 上:

find -E . -regex ".*file-($a|$b)\.txt"

在 Linux 上:

find . -regextype posix-extended -regex ".*file-($a|$b)\.txt"

关于regex - “查找”使用带变量的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24552144/

相关文章:

linux - 如何递归搜索具有特定扩展名的文件?

删除特定列中行内的重复元素

c# - 使用正则表达式生成随机字符串

PHP:用硬分隔符替换数字之间空格的正则表达式

bash_profile 多行别名

c++ - 在 Linux 中查找函数签名

c# - C# 中用于字符等价物的正则表达式

linux - 管道将输入拆分为命令

linux - 使用 find 和 csplit 的无效参数

c++ - 在 vector<complex <double>> 上使用 equal(),find()