我一直试图将用户定义的文件扩展名添加到正则表达式中但没有成功。这是我的剧本:
#!/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
输入中?是否有可能首先,或者有更简单的方法来解决这个问题?谢谢!
答案 0 :(得分:2)
您使用单引号的方式会阻止$ fExt展开。
假设有类似bash的shell,你似乎想要的正则表达式可以如下指定:
"^q[0-9]{1,2}[a-z]?\.$fExt\$"
或
$'^q[0-9]{1,2}[a-z]?\\.'"$fExt"'$'