重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

今、サブディレクトリにあるファイルがjpgだったりJPGだったり拡張子がバラバラになっています。
それを、jpgに統一したいのですが、その場合find命令を使って変更することは可能なのでしょうか?

もし、分かる方居られましたら教えていただけると助かります。

A 回答 (4件)

bash なら



$for i in *.JPG ; do mv $i ${i/JPG/jpg}; done

で。
    • good
    • 0

正規表現はプログラムによって違うことがあるので, 詳細はマニュアルで調べてほしい.


#2 に書いたけど, かっこにバックスラッシュが必要かもね.

この回答への補足

括弧にバックスラッスということですが、以下のようにするのでしょうか?
find . -name '*.[jJ][pP][gG]' | sed -e 's/^\(\(.*\)\.[jJ][pP][gG])$/mv \1 \2.jpg/' | sh

補足日時:2011/01/11 14:31
    • good
    • 0

ファイル名・ディレクトリ名に「特殊な文字」がなければ


find . -name '*.[jJ][pP][gG]' | sed -e 's/^((.*)\.[jJ][pP][gG])$/mv \1 \2.jpg/' | sh
あたりでできるかもしれん (かっこにバックスラッシュが必要かも).
「特殊な文字」があるときには, その文字による. 本当に変なことをされると泣きそうなので Perl あたりのプログラム言語を使う.

「renコマンド」って何>#1.

この回答への補足

回答ありがとうございます。

sed: -e expression #1, char 38: invalid reference \2 on `s' command's RHS
というエラーが出ますね、、

renはWindowsのコマンドのようですね、、、

補足日時:2011/01/07 19:22
    • good
    • 0

>それを、jpgに統一したいのですが、その場合find命令を使って変更することは可能なのでしょうか?


ターミナルでのファイル名の変更はrenコマンド(renameコマンド)で*を使えば一括で変換できるはずです。
ren *.JPG *.jpg
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!