【发布时间】:2016-01-14 01:17:42
【问题描述】:
所以,我正在尝试编写一个 shell 脚本来查找当前目录中与作为我的脚本参数给出的固定正则表达式模式(在基本正则表达式中)匹配的所有文件。
我想出的是:
find ./ -maxdepth 1 -type f -regex "\.\/"$1""
我在开头有那些 ./ 因为 find 命令会找到我的文件并以 ./files 格式打印它们。
如果我为脚本提供参数 a.*,则该命令有效,但如果我尝试为它提供类似 [0-9]\{2\}[a-zA-Z]* 之类的内容来查找我所有开始的文件使用 2 位数字,后跟字母,没有任何反应,我发现它与转义特殊字符有关,但我似乎无法理解为什么以及如何正确地做到这一点......
【问题讨论】:
-
你觉得
$1在这里做什么? -
大概这一行在某个脚本或函数中。当你通过它时,你是否引用了这个论点?
your_func '[0-9]\{2\}[a-zA-Z]*' -
我没有引用这个论点,但即使我这样传递它似乎也不起作用,嗯,$1 被替换为论点,但我没有在我想脚本