[英]Bash variable in rename regex
我正在編寫一個bash腳本來重命名文件名並使用命令
rename 's/\d+/sprintf("%02d", $&)/e' *
但是想用“%0” $ var“ d”之類的東西替換“%02d”,從而用$ var替換'2',但似乎不起作用,而且我對regex和如何操作不了解使用轉義\\並希望獲得幫助
當然,您的整個表達式都位於單引號內,且不執行擴展。 要擴展命令的一部分,請將其移出引號:
rename 's/\d+/sprintf("%0'"$var"'d", $&)/e' *
或者將整個表達式用雙引號引起來,但是您需要轉義更多:
rename "s/\\d+/sprintf(\"%0${var}d\", \$&)/e" *
您也可以通過環境傳遞值
env var=5 rename 's/\d+/sprintf("%0$ENV{var}d", $&)/e' *
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.