Regex Bash脚本-需要帮助使匹配和替换工作正常吗

Regex Bash脚本-需要帮助使匹配和替换工作正常吗,regex,linux,bash,shell,Regex,Linux,Bash,Shell,我正在尝试在我的bash脚本中使用参数替换。。。我知道我搞错了。。。我正在尝试创建一个脚本来重命名文件的一部分 #!/bin/bash for i in *.hpp; do mv -v "$3 ${$3/$1/$2}" ; done 我得到的错误是: line 2: $3 ${$3/$1/$2}: bad substitution ${$3}将尝试在变量中插入${“内容$3”}。很可能您想要${3}。更可能的情况是,您想要${i}对于每个文件名,您想要应用什么转换根本不清楚。编辑您的帖子,

我正在尝试在我的bash脚本中使用参数替换。。。我知道我搞错了。。。我正在尝试创建一个脚本来重命名文件的一部分

#!/bin/bash
for i in *.hpp; do  mv -v "$3 ${$3/$1/$2}" ; done
我得到的错误是:

line 2: $3 ${$3/$1/$2}: bad substitution

${$3}
将尝试在变量中插入
${“内容$3”}
。很可能您想要
${3}
。更可能的情况是,您想要
${i}

对于每个文件名,您想要应用什么转换根本不清楚。编辑您的帖子,以包含一个(或多个)文件名“before”和“after”的示例。并且永远不会调用
i
变量!面包屑。。。应为*.hpp中的i;do mv-v“$i${i/$1/$2}”;doneMy犯了个错误。。。我正在尝试做什么-重命名文件的任何部分。。。使用mv和参数替换Foo1_ABC.hpp Foo2_ABC.hpp Foo3_ABC.hpp>test.sh ABC CDG Foo1_CDG.hpp Foo2_CDG.hpp Foo3_CDG.hpp----是。。。我明白了。。。一系列错误。。。就我而言。谢谢。@Xofo如果您安装了
rename
,您可以使用
rename's/ABC/CDG/'*.hpp
rename有不同的实现方式,请小心。这是为了perl oneTo老实说每个人都说使用重命名脚本。。。但当我想要它时,它似乎永远不会出现(在我不直接管理的机器上)。于是我写道:————/“${@:3}”中i的bin/bash;do mv-v“$i”“${i/$1/$2}”;完成回声“完成!”----