拡張子を.mp3に変更したい.MP3ファイルのあるディレクトリがあります。これを行う最も簡単な方法は何ですか?私は次のようなことを考えています:
find /RootPath -type f -iname "*.mp3" -exec mv {} sed s/.*MP3/1.mp3/ ;
…それは正しくないことは知っていますが。 🙂置換が正しくなく、mv
の両方を使用する方法がわかりません およびsed
-exec
を使用したコマンド find
で 。
このためにbashスクリプトが必要ですか?
承認された回答:
Bashでこれを行う1つの方法は次のとおりです:
for i in *; do [ "${i/%MP3/mp3}" != "$i" ] && echo "$i" "${i/%MP3/mp3}"; done
echo
を使用しました ここでは、コマンド自体はファイル名のペアを出力する以外は何もしません。そのリストが必要な変更を表している場合は、echo
を変更できます。 mv -i --
のようなものに これにより、ファイルが移動します(上書きする前にプロンプトが表示されます)。
簡単な説明:
for
*
に一致するすべてのファイルを反復処理します 。次に、拡張子がすでに小文字であるかどうかを判断します。小文字である場合は次に移動し、そうでない場合は移動に進みます(場合によってはエコーします)。これは、Bashの組み込みの文字列操作を使用します。これについては、http://tldp.org/LDP/abs/html/string-manipulation.html