gem list rails用于匹配以“rails”(和
the documentation still claims it works that way)开头的所有内容,但在某些时候它开始匹配名称中包含rails的所有内容.这可能会变得荒谬,因为有(目前我写这个,但我确信它实际上按小时增加)2,764项匹配“rails”:
gem list rails --remote | wc -l 2764
Rubygems可以默认只返回完全匹配吗?我没有看到任何commandline switches that force an exact match.也许是〜/ .gemrc中的设置?
显然我可以通过将输出传递给其他实用程序来做到这一点,但是每次你想要(例如)检查一个gem的最新版本时都会感到很痛苦,并且它会慢得多,并迫使你停下来想想(IMO)会分散您正在处理的任何问题的细节.
gem list rails --remote | grep '^rails '
是否有一个很好的方法使其成为默认值?
解决方法
您基本上是在命令行上输入正则表达式,所以
gem list -r ^rails$
做一个没有管道的精确搜索.我使用的是rubygems 2.0.6和2.4.5,它适用于两个版本.
但是我找不到任何东西放在.gemrc中.您可以轻松地为最常见的情况设置包装器shell脚本.