Solução:
grep -Eo 'cbb=[^;}]+'
Vamos testá-lo:
$ grep -Eo 'cbb=[^;}]+' <<<'bc("STG1/Phone") = {type=bana_pub; cbb=12.354; abb=0.0}''
$ cbb=12.354
Explicação:
Quando você usa ... | grep cbb | ...
, está usando o regex básico. O regex avançado não é tão complicado.
A opção -E
é para regex avançada, útil para não escapar de alguns metacaracteres. -o
é para imprimir apenas o que o grep corresponde em vez da linha inteira.
O regex cbb=[^;}]+
seria o mesmo para qualquer outro cmd, não apenas grep.
cbb=
é uma string fixa, não há meta-caractere lá ( c
seguido por b
etc)
[^;}]+
colchetes delimitam um conjunto de caracteres em uma única posição. Um acento circunflexo no início significa conjunto de caracteres negado. O sinal de mais significa um ou mais caracteres. Dessa forma, ele corresponderá a qualquer caractere, pelo menos um, até encontrar um ;
ou }
Aqui está um bom link para saber mais sobre regexes: link