など[year] name
のパターン名を付けた複数のディレクトリがあります[1900] aaaa
。名前の先頭に固定を追加し、その部分を最後に移動して(またはという名前を作成したいと思います)。[1901] bbbb
[1902] cccc
text -
[year]
text - name [year]
text - aaaa [1900]
rename -nv '[' 'text - ' '['?
util-linux 2.36.2で名前を変更しようとしています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.