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
Vik's Linux Tips: [Linux Shell] bashとsedを使ってファイルの拡張子を一括置換する
mv $1 `echo $1|sed -e "s/$2/$3/g"`
ってのも見つけた。またblogspot。。。トラックバック打てない。。。
#!/bin/bash mv $1 ${1/$2/$3}
かね、、、せめて。。。
参考
- id:ayucatch:20081005:shell_script