後のプロジェクトのためにファイル構造をより適切に設定するために削除する必要があるファイルIDの前に無関係なデータがある多数の.jpgファイルがあります。コマンドラインまたはBashでバッチ名前変更を行うにはどうすればよいですか(bashが望ましい)
例:A_file_name_f3xe3_1_60113520.jpg-(60113520がID)になる予定:60113520.jpg
すべてのファイルにはIDの前にアンダースコアがありますが、名前の他の場所にランダムに追加のアンダースコアが配置されています。
これに特に適したコマンドがあります:
rename -n 's/.*?(\d+.jpg$)/$1/' *.jpg
prename
上のdebian
であり、派生しており、Perl
実行可能ファイルです。
削除する -n
テストがニーズに合っている場合は切り替えます。
これをデフォルトのものにするには(まだdebian
で派生:
update-alternatives --set rename /usr/bin/prename
以下を使用してください。
for FILE in *.jpg ; do mv -v "$FILE" "${FILE//*_/}" ; done
これにより、ファイル名の最後の下線までのJPGファイル名のすべてが削除されます。 ここ セクション部分文字列の置換で説明されています:
$ {string // substring/replace}
$substring
のすべての一致を$replacement
に置き換えます。
あなたの場合、replacement
は空です。