Amazonチャージのプロモキャンペーンがアツい!

Amazonユーザーほぼ全員が対象の超お得キャンペーン。

zmvを使ってファイルのリネームとかを簡単に行う

shellを使ってファイルの一括リネームなどを行う際には一般的に

for f in *.html;
do
mv $f $.htmf;
done

こんな感じ

なのだが、これだとどうも面倒な感じ。

連番なんかと付けようとする場合にはもっと面倒。

なので、なんか便利なものはないかと探した。

Linuxには”rename”というコマンドがあるらしく、これが超絶簡単便利そうなものだったのだが、”UNIX”にはないらしい。

そして、Macにもこの”rename”コマンドは入っていなかった。

MacPortsなんかを探したけれども見つからず。諦めて、まともに書いた事がないShellScriptでも書いてみようと思ってたところ見つけたのがzshの”zmv”コマンド

詳細は

複数のファイルの名前をまとめて変更する – 技術メモ帳

http://d.hatena.ne.jp/lurker/20061120/1163981280

を見てもらうと良いのだが、かなーり簡単にファイルのリネームが行える。

リンク先にもあるように、たとえば、拡張子htmlをhtmに変えたい場合などこれだけでOK

zmv -W '*.html' '*.htm'

-Wを付けることで、* による、シェルっぽい一括指定が簡単にできてしまう。

-W無しでもこの程度

zmv '(*).html' '\$1.htm'

まぁ、大体どんなツール使っても正規表現は似たようなものですね。$の前に\付けることくらい。

ちなみにこの”zmv” 、autoloadをしてやらないと動かないみたい。

また、noglobを指定することで、鬱陶しいシングルクオートも不要になります。

なので、zshrcに以下を記述しておくと良いです。

autoload zmv
alias zmv='noglob zmv'

この記事を書いた人

五藤隆介(goryugo)

愛知県在住1980年生まれ。

「仕事効率化」「ライフログ」「家族Hack」「デジタル情報共有」みたいなことを書いてます。

2014年に結婚して料理を覚えて、理系の料理という本を書きました。

年に1〜2回子連れで長旅をするようになり、新しく旅行・お出かけブログも作りました。

2018年4月からはPodcastも配信中。

この記事が気に入ったら
いいね!しよう

最新の情報をお届けします