複数のファイル名の変更、一部の文字列の変更[重複]

複数のファイル名の変更、一部の文字列の変更[重複]

image(1) image(2) image(3) と似た名前のファイルがたくさんあります。 image1.jpg image2.jpgなどの名前を変更したいです。中かっこでは2つのステップで実行できます。これは明らかに、その行に対して組み込まれたシェル提供の文字列置換関数のようです。

orig="a_string"
mod=${orig/string/new_thing}

a_stringをa_new_thingに変換します。したがって、forループでこれを使用すると、)を.jpgに変換できます。

for f in *; do mv $f "${f/)/.jpg}" ;done

それから

for f in *; do mv $f "${f/\(/}" ;done

(を削除してください。開く括弧はエスケープする必要があります。そうしないと、シェルはそれが別のものの始まりだと思います。閉じ括弧はこのようにエスケープする必要はありません。良い方法はパイプを使用するのと同じです.

ベストアンサー1

コマンドを使用して複数のファイルの名前を変更できますrename。この場合、考えられる解決策は次のとおりです。

rename 's/\(//; s/\)/.jpeg/;' image*

おすすめ記事