Estou tentando obter texto entre caracteres especiais. Você pode seguir o abaixo para entender o que estou tentando obter. Tenho os comandos necessários para fazer isso, no entanto, estou procurando uma maneira mais eficiente, caso certas condições possam mudar com base no resultado.
Abaixo tem o texto On-Line (Prim) por exemplo. Quero extrair qualquer texto entre "--" 1ª e 2ª ocorrência.
Então eu tenho o texto abaixo na variável "VAL1"
IBM Informix Dynamic Server Version 14.10.FC10XA -- On-Line (Prim) -- Up 77 days 23:08:31 -- 130337920 Kbytes
Então atualmente estou usando o seguinte:
echo "$VAL1" | awk -F'--' '$1 ~ /Version/ {print $2}'
O acima fornece a saída abaixo:
On-Line (Prim)
No entanto, você não consegue ver que há necessariamente um espaço em branco no final da linha, mas o início é bem perceptível. Quero garantir que eu imprima apenas as palavras entre "--" que excluam quaisquer espaços em branco antes e depois da frase dentro de "--".
Então tentei usar o seguinte, que para mim parece estar bom:
echo "$VAL1" | awk -F'--' '$1 ~ /Version/ {print $2}' | sed 's/^ //g' | sed 's/ *$//'
Saída:
On-Line (Prim)
Gostaria de saber se existe uma maneira melhor e mais fácil de fazer isso que seja mais suficiente?