以下のスクリプトを使って、一致する文字列を見つけました。BASH:拡張正規表現grepの問題
#!/usr/bin/env bash
str='XX:+UseCMSInitiatingOccupancyOnly'
echo "str :${str}"
output=$(jvmmon -pid "$(pgrep java)" -c "print vm information" | grep -Eo "\-$str[^ ]+")
echo "output : $output"
コマンド、-XX:+UseCMSInitiatingOccupancyOnly
という名前の文字列が含まれていますが、私は出力を得るcouldntの、それが空であるjvmmon -pid "$(pgrep java)" -c "print vm information"
農産物outout。
レッツは、そのjvmmonコマンドを入れて言う-XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark
。注:他のパラメータは、このロジックに依存しているように私はgrepのの-Eを使用しなければなりません。
ありがとうございます。
この場合は 'grep'の望ましい結果は何ですか? – GMichael
@GMichael、出力は-XXでなければなりません:+ UseCMSInitiatingOccupancyOnly –
それはあなたに何を与えるでしょうか?あなたはすでにこの文字列を知っています。 – GMichael