ファイル名をまとめて変更するシェルスクリプト

2016年11月7日

複数のファイルを一度にリネームしたい時に便利なシェルスクリプトです。

#!/bin/bash

# ファイル名に含まれる文字列を指定した文字列に変更するスクリプト
# 実行時引数が3つ未満の場合は使い方を表示して終了

if [ $# -lt 3 ]
then
  echo "[Usage] 変更前の文字列 変更後の文字列 変更したいファイルのパス"
  exit 1
fi

args=$*
extra_args="$1 $2"
files=${args#$extra_args}

for f in $files
do
  mv $f ${f/$1/$2}
done

このシェルスクリプトを rename という名前で保存します。シェルスクリプトの保存に関しては以下の記事をごらんください。

シェルスクリプトの保存場所を決める

使用例

カレントディレクトリに以下のファイルが保存されていたとします。

  • icon_128.png
  • icon_256.png
  • icon_512.png

上記のスクリプトを使って icon_Icon- に変更してみます。以下のようにコマンドを入力して下さい。

rename icon_ Icon- *.png

すると、ファイル名は次のように変更されます。

  • Icon-128.png
  • Icon-256.png
  • Icon-512.png

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です