1. ホーム
  2. shell

[解決済み] シェルスクリプトを使用して、ファイル名の特定のパターンを置き換えて複数のファイル名を変更する [複製]

2022-04-15 22:55:42

質問

<ブロッククオート

いくつかのファイルの名前を自動的に変更する簡単なスクリプトを書いてください。例えば、*001.jpg というファイルを、ユーザー定義の文字列 + 001.jpg (ex: MyVacation20110725_001.jpg) にリネームしたい。このスクリプトの用途は、デジタルカメラの写真に、意味のあるファイル名を付けることである。

このためのシェルスクリプトを書きたいのですが。どなたか、どのように始めたらよいか教えてください。

どのように解決するのですか?

スタートダッシュのための一例。

for f in *.jpg; do mv "$f" "$(echo "$f" | sed s/IMG/VACATION/)"; done

この例では、すべての画像ファイルに文字列 IMG に置き換えたい場合 IMGVACATION .

シェルは自動的に *.jpg をマッチするすべてのファイルに適用します。

の第2引数は mv (新しいファイル名)の出力が sed を置き換えるコマンドです。 IMGVACATION .

ファイル名に空白が含まれる場合は、以下の点に注意してください。 "$f" という表記があります。空白を保持するためにダブルクオートが必要です。