簡體   English   中英

重命名正則表達式中的Bash變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM