如何使用sed和正则表达式格式化ruby版本字符串?

时间:2018-07-10 21:59:21

标签: ruby regex sed

背景

我想格式化ruby -v返回的字符串。

代码

pattern="" # what do I put in here?
ruby -v | cut -d " " -f2 | sed 's/$pattern/g'

输出

ruby -v => ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]

ruby -v | cut -d " " -f2 => 2.3.3p222

预期

我想通过将ruby -v | cut -d " " -f2sed2.3.3的管道输出。

2 个答案:

答案 0 :(得分:1)

根据我的理解,您希望最终的结果是2.33。如果是,这就是您可以做的。

$ ruby -v | awk '{ print $2 }' | awk -F'p' '{ print $1 }'

答案 1 :(得分:1)

您可以为此使用grep:

$ ruby -v | grep -Po '\d+(\.\d+){2}'
2.5.1

或者仅使用ruby本身:

$ ruby -e 'puts RUBY_VERSION'
相关问题