Directory
批量重命名附加固定文本和移動部分名稱的文件夾
我有幾個以模式命名的目錄
[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: [?
.我怎樣才能做到這一點?
編輯:在我原來的文章中,我忘了提到所有文件夾都有不同的名稱。
使用 Perl
rename
工具(這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.