Я написал ниже сценарий, чтобы найти подходящую строку.BASH: проблема с расширенным регулярным выражением
#!/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"
Command, jvmmon -pid "$(pgrep java)" -c "print vm information"
производят Outout, который содержит строку с именем, как -XX:+UseCMSInitiatingOccupancyOnly
, но я не смог получить выход, и он пуст.
Пусть говорят из положить эту команду jvmmon является -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark
Примечание: Должен использоваться Grep -E, как и другие параметры зависят от этой логики.
спасибо.
Что желаемый результат 'grep' в этом случае? – GMichael
@GMichael, выход должен быть -XX: + UseCMSInitiatingOccupancyOnly –
Что он вам даст? Вы уже знаете эту строку. – GMichael