你可以帮我找一个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'
答案 0 :(得分:1)
尝试这个简单的sed命令
sed 's/.*Dserver.port=\([^ ]\+\).*/\1/' <<< "-OtherJVM1=value1 -OtherJVM2=value2 -Dserver.port=9034 -Dajp.port=8534"
答案 1 :(得分:0)
我不使用SED,但如果您的正则表达式中使用的不是“.
”(点),而是使用\d
,它应该匹配Dserver.port=
之后的任意位数,没有捕获其余的字符串。