0

.png を @2x.png に置き換えるスクリプトが必要です。ディレクトリ内のすべてのファイル名に対してこれを行うにはどうすればよいですか?

4

2 に答える 2

3

bash の場合:

for f in *.png; do
    mv "$f" "${f%.png}@2x.png"
done

説明:

ライン1:

for f in *.png; do

ループ用。glob pattern*.pngに一致する現在のディレクトリ内のすべてのファイル名を繰り返し処理し、各名前を順番に設定$fして、ループの本体を実行します。

2行目:

mv "$f" "${f%.png}@2x.png"

ツールを実行しmvます。最初の引数は"$f"、名前を変更するファイルです。2 番目の引数は、2 段階のプロセスです。

  1. ${f%.png}拡張子が.png取り除かれたファイル名に評価されます。

  2. 削除されたファイル名の後に続くのは@2x.png、その文字列をファイル名に追加するだけです。

3 行目:

done

for ループを終了します。

于 2012-11-06T23:04:48.283 に答える
0

次のスクリプトが機能するはずです。

#!/bin/bash

for file in *.png
do
    filename=$(basename "$file")
    filename="${filename%.*}"
    filename="${filename}@2x.png"
    mv "$file" "$filename"
done
于 2012-11-06T23:12:56.900 に答える