posix扩展正则表达式中的可变扩展

时间:2016-02-07 03:50:23

标签: regex linux bash find

我一直试图将用户定义的文件扩展名添加到正则表达式中但没有成功。这是我的剧本:

#!/bin/bash

echo -n "Enter which file extension are you looking for: "

read fExt

find . -maxdepth 1 -type f -regextype posix-extended -regex '^./q[0-9]{1,2}[a-z]?.\"$fExt\"$'

我寻找的文件名看起来像

q1.txt
q22b.pdf
q3c.JPG

这个版本没有用,所以我一直在使用多个ext1|ext2|...个案例,这显然不是模块化的。如何将$fExt添加到我的-regex输入中?是否有可能首先,或者有更简单的方法来解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:2)

您使用单引号的方式会阻止$ fExt展开。

假设有类似bash的shell,你似乎想要的正则表达式可以如下指定:

"^q[0-9]{1,2}[a-z]?\.$fExt\$"

$'^q[0-9]{1,2}[a-z]?\\.'"$fExt"'$'