sed命令检索端口号

时间:2016-07-05 13:56:16

标签: regex sed

你可以帮我找一个sed命令来检索' 9034'来自这些JVM参数的值。

-OtherJVM1=value1 -OtherJVM2=value2 -Dserver.port=9034 -Dajp.port=8534

以下是我的尝试:

sed -n -e 's/^.*\(Dserver.port=\)//p'

上面的sed命令给出了:

9034 -Dajp.port=8534 

但我只想在1个命令中使用' 9034'

2 个答案:

答案 0 :(得分:1)

尝试这个简单的sed命令

sed 's/.*Dserver.port=\([^ ]\+\).*/\1/'  <<< "-OtherJVM1=value1 -OtherJVM2=value2 -Dserver.port=9034 -Dajp.port=8534"

答案 1 :(得分:0)

我不使用SED,但如果您的正则表达式中使用的不是“.”(点),而是使用\d,它应该匹配Dserver.port=之后的任意位数,没有捕获其余的字符串。