Directory

批量重命名附加固定文本和移動部分名稱的文件夾

  • February 24, 2021

我有幾個以模式命名的目錄[year] name,例如[1900] aaaa, [1901] bbbb,[1902] cccc等等。我想將一個固定附加text - 到名稱的開頭並將該[year]部分移動到末尾,從而生成名為text - name [year]( 或text - aaaa [1900],例如 .

我正在嘗試從 util-linux 2.36.2 重命名,rename -nv '[' 'text - ' '['?但我收到no matches found: [?.

我怎樣才能做到這一點?

編輯:在我原來的文章中,我忘了提到所有文件夾都有不同的名稱。

使用 Perlrename工具(這rename與 util-linux 包不同):

rename 's/^(\[\d{4}\])( .*)/text -$2 $1/' *

使用bash參數子字元串擴展

for i in \[[0-9][0-9][0-9][0-9]\]\ *; do
 mv "$i" "text -${i:6} ${i:0:6}"
done

好的,這一年是這裡最困難的部分,但這應該對你有用,確保你先測試它,我在幾個例子上試過。

for n in *; do year=$(echo "$n" | grep -oz [[:digit:]]); mv "$n" "addon - text [$year]"; done

我的測試文件名為“

$$ year $$text" 如果您的文件名稱不同,則需要稍作調整。 傑森 C.

引用自:https://unix.stackexchange.com/questions/636088