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