「Unixにおける複数ファイルの変更」から敷衍する

「複数のファイルの名前をまとめて変更する」- 技術メモ帳の記事が人気エントリーにあったので、乗じつつ考えてみる。

個人的な解法としては viを使う。コマンドを書いてみると以下のとおり:

!!ls *.html
:%s/\(.*\)\.html/mv \1.html \1.htm/
:%!sh
:q!

正規表現を一発で書くのはちときついが、数個なら目で変更後の名前を確認できるし、一部のファイルは変更したくないって時の対応も簡単。個人的にはエレガントだと思う。

で、エレガントさからすると新しいコマンドを導入するというのはどうよ? って思う。ファイル名の変更にしか使えないコマンドに脳みその記憶容量をとられるなんて悲しい。そんなことより、より一般的なツールを知っておいてさらっと組み立てるほうがエレガントじゃないかな。

自分の脳みそのスワップをネット上に置いてぐぐれる時代だと、エレガントさの基準も変わるのかもしれない。と、大昔に端末の後ろから先輩の繰り出す呪文を眺めていたおじさんは思うのだった。

追記: コマンドが間違っていたことに気づいて、編集しなおした。
さらに追記: 以下のコマンドのほうが分かりやすいな:

!!ls *.html
:%s/.*/mv & &/
:%s/\.html$/.htm/
:%!sh
:q!