ファイル名に科学的表記法で書かれた数字の変更

ファイル名に科学的表記法で書かれた数字の変更

画像ファイルで画像を作成していますが、ファイル名に科学的表記法による数字が含まれているため、名前の順序が正しくありません。

ファイル名の形式は次のとおりです。

ABC_1.000000E-01.png ~ ABC_1.100000E+01.png,
DEF_1.000000E-01.png ~ DEF_1.100000E+01.png,
GHI_1.000000E-01.png ~ GHI_1.100000E+01.png,
.
.
.

数値が使用する数値表現を変更すると、順序がもはや合わなくなるので、次のように変更したいと思います。

ABC_001.png ~ ABC_110.png,
DEF_001.png ~ DEF_110.png,
GHI_001.png ~ GHI_110.png,
.
.
.

私のLinuxシステムでこれをどのように実行しますか?

ベストアンサー1

また試み

ls -1 *.png | LC_ALL=C awk -F[._] '{TMP=$2 "." $3; printf "mv %s  %s_%03d.%s\n", $0, $1, 10*TMP, $4}'                  
mv ABC_1.000000E-01.png  ABC_001.png
mv ABC_1.100000E+01.png  ABC_110.png
mv DEF_1.000000E-01.png  DEF_001.png
mv DEF_1.100000E+01.png  DEF_110.png
mv GHI_1.000000E-01.png  GHI_001.png
mv GHI_1.100000E+01.png  GHI_110.png

awk科学的表記法で数値を分離して変換し、10倍の値をゼロパディングされた整数として出力するために使用されます。たとえば、sh結果に満足している場合は、パイプラインを通過してみてください。

おすすめ記事