A1.txtをA0001.txtに変更するなど、バッチファイル名でシリアル番号の形式を再指定する方法は? [コピー]

A1.txtをA0001.txtに変更するなど、バッチファイル名でシリアル番号の形式を再指定する方法は? [コピー]

A1.txt A2.txt...A11.txt A12.txtなどのファイルがあります。 A0001.txt A0002.txt...A0011.txtなどに名前を変更したいです。私がしっかりしているのか?

for file in A*.txt
do
mv ${file} ${file/-#.txt-/-"%5d".txt}
done

ベストアンサー1

@John1024が提案したオプションがない場合(組み込みですがGUNでも利用可能)を使用して、必要なフィールド幅とパディングで10進形式を指定できる必要がprenameあります。残念ながら、私はこれを行いません。数字を抽出するステップシェル拡張がないと思います。私が得ることができる最も近いものは次のとおりです。printfbashcoreutils

for file in A*.txt
do
  base="${file%.*}"
  printf -v newfile "A%04d.txt" "${base#A}"
  mv -- "$file" "$newfile"
done

おすすめ記事