2016-07-05 32 views
1

sedコマンドを使用して、これらのJVM引数から '9034'の値を取得できますか?ここで ポート番号を取得するためのsedコマンド

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

は、私が試したものである:1つのコマンド内で、

9034 -Dajp.port=8534 

をしかし、私は唯一の '9034' をしたい:

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

上記のsedコマンドを与えています。

+0

[bash get string after character]の可能な複製(0120-919-03) – tripleee

+0

@DevOpsNewB、 'grep':' grep -oP ' (?<= - Dserver.port =)[0-9] * '<<<' input-string'' – sat

+0

完全なコマンドですか?構文の問題があるように見える – DevOpsNewB

答えて

1

私はSEDを使用していないが、あなたは\dを使用し、あなたの正規表現であれば代わりに「.」(ドット)、それは後の桁の任意の数と一致する必要があり

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

上記のsedは機能しません。その文字列全体を返す – DevOpsNewB

+0

あなたが使っている 'sed'のバージョンは? – Kalanidhi

0

この単純なsedコマンドを試してみてくださいDserver.port=、残りの文字列はキャプチャしません。

関連する問題