ayucat.ch 2015-16

id:ayucatのぶろぐ (Nexus 5 (2015) / iPhone 6s / Galaxy S6 edge / iOS 9 / Ubuntu Trusty / Android 6.0 Marshmallow / Thunderbird / AWS / クラブ / 祭り / 花火 / 海 / 野外フェス)

bash機能を用いて超お手軽、拡張子の一括変更

hoge.htmとかimage.JPGとかをhoge.htmlやimage.jpgなどと、拡張子だけを一括変更する方法。

ファイルの数が少ない場合は普通にmvすればいいのだが、ディレクトリごと一斉置換したい場合は以下のようにする:

例:*.htmを*.htmlに置換する

# for f in *.htm; do mv $f `echo $f|sed -e "s/htm/html/g"`; done

基本的にsedの/htm/html/g箇所をいじればどんな置換にも対応できる。
なのだが、いつもこんな長いコマンドを打ち込むのはめんどうなので、スクリプトにまとめておくと便利。

例えばこんな感じ:

#!/bin/sh
mv $1 `echo $1|sed -e "s/$2/$3/g"`

Vik's Linux Tips: [Linux Shell] bashとsedを使ってファイルの拡張子を一括置換する

ってのも見つけた。またblogspot。。。トラックバック打てない。。。

#!/bin/bash
mv $1 ${1/$2/$3}

かね、、、せめて。。。

参考