こんにちは、河野です。
最近bundlerを使っているわけですが、たまに勢い余って--pathを付け忘れたりしてrvmのlocalにgemをインストールしたりすることがあります。
そんな時に、一括でgemを削除する方法です。
まず、削除したいgemの一覧が必要です。--no-versionsをつけるとバージョンが出力されません。
| 1 2 3 4 5 6 7 | $ gem list --no-versions *** LOCAL GEMS *** actionmailer actionpack (略) | 
これでgemの一覧が取得できますが、「*** LOCAL GEMS ***」ってのが邪魔ですね。grep でフィルタします。
| 1 2 3 4 | $ gem list --no-versions | grep "^[a-z]" actionmailer actionpack (略) | 
これで余計な出力がなくなりましたので、これをgem uninstallします。xargs を使えば事前の出力を引数にできますね。
| 1 2 3 4 5 | $ gem list --no-versions | grep "^[a-z]" | xargs gem uninstall -aIx Successfully uninstalled actionmailer-3.2.8 Successfully uninstalled actionpack-3.2.8 INFO:  gem "bundler" is not installed (略) | 
途中でいくつか削除されないものがありますが、bundlerで管理しているデフォルトのgemっぽいです。
uninstallのオプションは、
- a : 全バージョン
- I : 依存性を無視する
- x : 実行ファイルも
という意味です。
| 1 2 3 4 5 6 7 8 | $ gem list *** LOCAL GEMS *** bundler (1.2.0) rake (0.9.2.2) rubygems-bundler (1.1.0) rvm (1.11.3.5) | 
これで、余計なgemが綺麗さっぱりなくなりました!

 
						