ope*_*sas 129 ruby gem version
我试图找出指定gem的所有远程可用版本.
我试过用:
gem list rhc --remote
Run Code Online (Sandbox Code Playgroud)
但它显示:
*** REMOTE GEMS ***
rhc (0.84.15)
rhcp (0.2.18)
rhcp_shell (0.2.12)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
ope*_*sas 198
嗯,这比我想象的要容易得多(嗯,不是真的,让我们说它应该是那么容易):
gem list rhc --remote --all
Run Code Online (Sandbox Code Playgroud)
哪个回报:
*** REMOTE GEMS ***
rhc (0.84.15, 0.84.13, 0.83.9, 0.82.18, 0.81.14, 0.80.5, 0.79.5, 0.77.8, 0.75.9, 0.74.6, 0.74.5, 0.73.14, 0.72.29, 0.71.2, 0.69.6, 0.69.3, 0.68.5)
rhcp (0.2.18, 0.2.17, 0.2.16, 0.2.15, 0.2.14, 0.1.9, 0.1.8, 0.1.7, 0.1.6, 0.1.5, 0.1.4, 0.1.3, 0.1.2)
rhcp_shell (0.2.12, 0.2.11, 0.0.9, 0.0.7, 0.0.6, 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1)
Run Code Online (Sandbox Code Playgroud)
Eya*_*vin 30
根据RubyGem的指南,你应该使用search关键字.所以命令可以是:
gem search rhc --all
如果您想要确切的名称使用:
gem search ^rhc$ --all
如果要包含预发布版本,请使用 --pre
gem search ^rhc$ --pre
如果你正在使用zsh添加引号:
gem search '^rhc$' --all
要扩展@ eyalev的答案,如果你想要每行一个版本的列表,这里是一个单行:
gem search '^rspec$' --all \
| grep -o '\((.*)\)$' \
| tr -d '() ' \
| tr ',' "\n" \
| sort
0.0.10
0.1.0
0.1.1
# etc.
Run Code Online (Sandbox Code Playgroud)
为了使它更具可重用性,你可以编写一些函数(原谅我有限的bash技能):
function extract_gem_versions() {
echo "$1" \
| grep -o '\((.*)\)$' \
| tr -d '() ' \
| tr ',' "\n";
}
function gem_versions() {
local gem_name="$1";
local pattern="^${gem_name}$";
local vers_str="$(gem search ${pattern} --all)";
extract_gem_versions "$vers_str";
}
gem_versions rspec | sort
0.0.10
0.1.0
0.1.1
# etc.
Run Code Online (Sandbox Code Playgroud)