[email protected]のようなファイル名が間違っています。[email protected]~ipad.pngのようになります。複数のファイル名をbashシェルの名前に変更
これが私にこの質問を提起するのに適切な場所であるかどうかは不明です。そのようなファイル名を間違ったものから期待されるものに変換するためのシンプルなbashシェルスクリプトを書く方法。
[email protected]のようなファイル名が間違っています。[email protected]~ipad.pngのようになります。複数のファイル名をbashシェルの名前に変更
これが私にこの質問を提起するのに適切な場所であるかどうかは不明です。そのようなファイル名を間違ったものから期待されるものに変換するためのシンプルなbashシェルスクリプトを書く方法。
mv [email protected] [email protected]~ipad.png
man mv
を利用できます。これは、ファイルがちょうどpng
のでないならば、3文字の拡張子を想定し、この(不可知論拡張子)を使用して簡単に
for file in *; do
[[ "$file" =~ @2x~ipad\.png$ ]] || mv "$file" "${file%@*}@2x~ipad.png"
done
SH/POSIXに変換することもできるが、bashのを使用して
彼が言った複数のファイル... – DipSwitch
はい、数百多分。それを最初に見つけて、それを変換する必要があります。 – Forrest
場所は固定されていませんか?それらのファイルはいくつかのディレクトリの下でグループ化されていませんか? – c00kiemon5ter
。その後、
for file in *; do
[[ "$file" =~ @2x~ipad\.[[:alpha:]]{3}$ ]] || mv "$file" "${file%@*}@2x~ipad.${file##*.}"
done
これらのファイルは、いくつかのディレクトリの下にグループ化されていない場合は、スクリプトを必要としない指定されたルートディレクトリ
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")
良い答え。彼は 'x2'を' 2x'に変換して '$ {file%x2。*} 2x〜ipad。$ {file ## *。} 'のようなものを要求しました。 – bdecaf
良いキャッチは、質問でそれを見ていない。ファイル形式はクリアされるべきです。私は推測し続けることはできません;) – c00kiemon5ter
下再帰的find
にそれらを試してみてください。 mmv
を試してみてください。
mmv "*.png" "#1~ipad.png"
あなたはたくさんのファイルのために簡単にこれを行うにはprename
(perl
が付属しています)を使用することができます。
prename 's/x2\.png/2x~ipad.png/' *.png
あなたは '含めるファイルの束の名前を変更する必要があると言っている〜その部分がない場合は拡張の前にipad? – c00kiemon5ter
[大量リネームの方法は?](http://stackoverflow.com/questions/417916/how-to-do-a-mass-rename)の可能な複製。また、 '[shell] rename file'の検索で見つかった3000以上の質問があります。 –