
次のようなバッチファイルがあります。
$ ls
Li1Fe1O2_11 Li1Fe2O3_8 Li1Fe3O4_2 Li1Fe3O4_5 Li2Fe1O3_16 Li2Fe2O4_12 Li3Fe1O4_19 Li3Fe1O4_22
Li1Fe1O2_14 Li1Fe2O3_9 Li1Fe3O4_3 Li1Fe3O4_6 Li2Fe1O3_17 Li2Fe2O4_13 Li3Fe1O4_20
Li1Fe2O3_7 Li1Fe3O4_1 Li1Fe3O4_4 Li2Fe1O3_15 Li2Fe2O4_10 Li3Fe1O4_18 Li3Fe1O4_21
名前を次のように変更したいと思います。
enum-00132
enum-00133
enum-00134
...
私は成功せずに名前を変更しようとしました。
答え1
これを使用してください:
c=132
for f in *; do
mv -v "$f" "enum-$(printf '%0*d' 5 $c)"
c=$(($c+1))
done
これはc=<your_starting_number>
あなた132
の質問と同じです。次に、for
現在のディレクトリのすべてのファイルを繰り返します。このコマンドは各ファイルに対してmv
呼び出されます。このprintf
ユーティリティは、先頭にゼロの付いた新しいファイル名を出力します。最後に、カウンタ変数は$c
+1増加します。
編集する:ディレクトリのみを希望する場合は、次を使用します(*/
ディレクトリのみを使用し、残りは変更しません)。
c=132
for d in */ ; do
mv -v "$d" "enum-$(printf '%0*d' 5 $c)"
c=$(($c+1))
done