0

file1@x2.png のような間違ったファイル名があります。file1@2x~ipad.png のようにする必要があります。

これが私がこの質問を提起するのに適切な場所であるかどうかはわかりません. そのようなファイル名を間違ったものから期待されるものに変換するための簡単な bash シェル スクリプトの書き方。

4

4 に答える 4

3

bashを使用しますが、これはsh/POSIXに簡単に変換できます

for file in *; do
    [[ "$file" =~ @2x~ipad\.png$ ]] || mv "$file" "${file%@*}@2x~ipad.png"
done

ファイルがpngsだけではない場合は、3文字の拡張子を想定して、これを使用します(拡張子に依存しません)。

for file in *; do
    [[ "$file" =~ @2x~ipad\.[[:alpha:]]{3}$ ]] || mv "$file" "${file%@*}@2x~ipad.${file##*.}"
done

findそれらのファイルが特定のディレクトリの下にグループ化されていない場合は、指定されたルートディレクトリの下で再帰的にそれらを試してください

while read -r file; do
    [[ "$file" =~ @2x~ipad\.[[:alpha:]]{3}$ ]] || mv "$file" "${file%@*}@2x~ipad.${file##*.}"
done < <(find /path/to/root/dir/to/look/under -type -f -name "*.png")
于 2012-04-20T10:07:36.190 に答える
1

スクリプトは必要ありません。試してくださいmmv

mmv "*.png" "#1~ipad.png"
于 2012-04-20T13:22:04.357 に答える
0

prename(付属の)を使用perlして、多くのファイルに対してこれを簡単に行うことができます。

prename 's/x2\.png/2x~ipad.png/' *.png
于 2012-04-20T16:57:27.637 に答える
0

mv file1@x2.png file1@2x~ipad.png ヘルプに使用できますman mv

于 2012-04-20T10:06:08.890 に答える