在此问题我知道我们只能使用单引号在重命名命令中引用捕获的组。
有没有办法在同一个重命名命令中同时使用捕获组和其他变量?
例子:
var="-old_file"
cd /etc
rename 's/(bash\.bashrc)/$1$var/' *
答案1
您可以$1
用单引号或$var
双引号引起来:
$ rename -n 's/(bash\.bashrc)/$1'"$var"/ *
rename(bash.bashrc, bash.bashrc-old_file)
或者
$ rename -n 's/(bash\.bashrc)/$1'"$var"'/' *
rename(bash.bashrc, bash.bashrc-old_file)
或者将整个表达式括在双引号中,并使用反斜杠转义$1
以防止它被 shell 扩展:
$ rename -n "s/(bash\.bashrc)/\$1$var/" *
rename(bash.bashrc, bash.bashrc-old_file)