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

未分類

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

shellを使ってファイルの一括リネームなどを行う際には一般的に for f in *.html; do mv $f $ […]

最終更新日:2017年2月5日

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'

セール・特価情報

コメントを残す

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

未分類カテゴリーの記事を全部見る