批量重命名文件夹附加固定文本和移动部分名称

批量重命名文件夹附加固定文本和移动部分名称

我有几个以模式命名的目录[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: [?.

我怎样才能做对呢?

编辑:在我原来的帖子中,我忘记提及所有文件夹都有不同的名称。

答案1

使用 Perl工具(这与 util-linux 包rename不同):rename

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

答案2

好吧,今年是最困难的部分,但这应该对你有用,确保你先测试一下,我在几个例子上尝试过。

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

我的测试文件名为“[年份]文本”如果您的文件名称不同,则需要稍微调整。

杰森·C.

相关内容