2017-12-18 17 views
0

私は数千のjpgファイルを含むフォルダを持っています。問題は、ファイル名と "jpg"(たとえば123jpg)の間にドットがないため、一部が壊れていることです。ファイルフォーマットをbashで追加する

これを修正するスクリプトが必要です。それ、どうやったら出来るの?

+0

どのようにファイル名が終わるところあなたが知っていると拡張子が始まるのですか?拡張子は常に3文字ですか? –

+2

'for fn for * jpg; do ["$ fn" = * "。jpg"] || mv "$ fn" "$ {fn%jpg} .jpg";完了 '? –

+0

このフォルダ内の拡張子を持たないすべてのファイルは、常に "*** filename *** _ jpg_"というパターンに従います。拡張子を持たないファイルは他にありません。 – kajeep33

答えて

2
renameコマンドと

$ rename jpg .jpg *[^.]jpg 
+1

これはループと複合コマンド構文を覚えていなくても機能します。 –

+2

これは名前を変更するコマンドの1つです。 'rename 's/jpg $/.jpg /' * [^。] jpg'のように、Perlベースの名前変更(' prename'と呼ばれることもあります)があります。これは、 'anyjpgfilejpg'を' any.jpgfilejpg'に変更しないというメリットがあります(ただし、質問で使用されたプリミティブな名前変更のリスクはありません)。 +1はグロブ表現として '* [^。] jpg'をうまく使うためです。 –

関連する問題