Как вырезать строку из оболочки bash

Из linux Bash вы можете помочь мне, как показать только

Monitoringmetric=1.5Count

вместо

Monitoringmetric=1.5Count;1;2

person Apps Tester    schedule 04.10.2016    source источник
comment
Вы можете использовать bash для этого: s='Monitoringmetric=1.5Count;1;2'; echo "${s%%;*}"   -  person anubhava    schedule 04.10.2016
comment
Спасибо, Жан и Анубхва, оба предложения работают как шарм, могу ли я задать еще один вопрос о том, как я могу только вырезать и показывать только = 1,5   -  person Apps Tester    schedule 04.10.2016
comment
Пожалуйста, не превращайте раздел комментариев в сеанс вопросов и ответов. Если у вас есть ответ, опубликуйте его как ответ. @AppsTester Если у вас есть дополнительный вопрос, опубликуйте новый вопрос.   -  person chepner    schedule 04.10.2016
comment
Наконец-то я показал это, но кажется, что это длинная команда, пожалуйста, сообщите, есть ли способ сократить это $ echo Monitoringmetric=1.5Count;1;2 | cut -f2 |sed -e 's/Monitoringmetric=//g' | вырезать -f1 -d ; | sed -e 's/счетчик//g'   -  person Apps Tester    schedule 04.10.2016


Ответы (3)


Поскольку вы заинтересованы только в том, чтобы зафиксировать число после Monitoringmetric=, вы можете сделать следующее:

echo "Monitoringmetric=1.5Count;1;2" | sed -n -e 's/^Monitoringmetric=\([0-9.]*\).*/\1/p'
person blackpen    schedule 04.10.2016

Наконец показал это, но кажется, что это длинная команда, пожалуйста, сообщите, есть ли способ сократить это

$ echo "Monitoringmetric=1.5Count;1;2" | cut -f2 |sed -e 's/Monitoringmetric=//g' | вырезать -f1 -d ";" | sed -e 's/счетчик//g'

person Apps Tester    schedule 04.10.2016
comment
Почему вы используете команду cut -f2, которая, кажется, ничего не дает? Что вы пытаетесь извлечь из ввода? Всего 1,5? - person blackpen; 04.10.2016

Если ваша строка находится в переменной, вы также можете использовать ${a%%;*}, например:

a="Monitoringmetric=1.5Count;1;2"
echo ${a%%;*}
person Ljm Dullaart    schedule 04.10.2016