Вы используете неправильное действие в ограничении упорядочивания. «Promote» следует использовать только для ресурсов Master / Slave, используйте «start» для ваших групп.
pcs constraint order start SQL-Group then ASTERISK-Group
Попробуйте grep
все, что не =
:
# echo '9701=1??
9701=10.Pp
9701=1a 8a
9701=3.a_tt
9701=1/a -00
9701=Bg1998pps' | egrep -o '9701=[^=]{1,50}'
9701=1??
9701=10.Pp
9701=1a 8a
9701=3.a_tt
9701=1/a -00
9701=Bg1998pps
# echo '9701=Bg19=98pps' | egrep -o '9701=[^=]{1,50}'
9701=Bg19
## If you too need to include equal char
# echo '9701=Bg19= 98pps' | egrep -o '9701=.{1,50}'
9701=Bg19= 98pps
cut -d '=' -f 2- data.in
Это будет рассматривать каждую строку как ряд =
-разграниченных полей и возвращать все после первого поля
Выход:
1??
10.Pp
1a 8a
3.a_tt
1/a -00
Bg1998pps
Если вам нужно быть уверенным, что возвращается только то, что относится к начальной части строки (9701
в вашем случае):
grep '^9701=' data.in | cut -d '=' -f 2-
Альтернативно, все это с помощью awk
(хотя это будет неудачно, если в строке более одного =
):
awk -F '=' '/^9701/ { print $2 }' data.in
С pcregrep
:
pcregrep -o1 '9701=(.*)'
Выводит то, что находится справа от самого левого вхождения 9701=
в строке (для тех строк, которые содержат 9701=).
С GNU grep
, собранным с достаточно свежим PCRE:
grep -Po '9701=\K.*'
Хотя это не сообщит о пустой строке для ввода типа 9701=
(то есть там, где то, что находится после 9701=
, является пустой строкой).
Стандартно, это было бы работой для sed
:
sed -n 's/9701=/\
/;s/.*\n//p'
Чтобы включить все остальные символы в ваш grep
, вы можете использовать следующее:
egrep -Eo '9701=.{1,50}' test.log
Точка представляет ЛЮБОЙ символ.
Но это не приведет к отсечению части «9701 =» в каждой строке. Чтобы добиться этого, вы можете использовать cut
cut -d "=" -f 2- test.log
, хотя это могло бы вызвать спотыкание, если бы значение также включало =
.
sed
исправит это за вас и в конечном итоге является лучшим решением вашей проблемы:
sed -r 's/^9701=(.*)$/\1/' test.log
или
sed 's/^9701=\(.*\)$/\1/' test.log
или даже
sed 's/^9701=//' test.log