Usando o awk
Imprime a primeira linha sem {
e a quarta linha:
$ show server pool | awk 'NR==1{sub(/{/, ""); printf "%s",$0} NR==4'
sw pool test status up
Como funciona
-
NR==1{sub(/{/, ""); printf "%s",$0}
A condição
NR==1
seleciona a primeira linha. Para esta linha, o{
é removido com o comandosub
e, em seguida, a linha é impressa usandoprintf
(sem uma nova linha). -
NR==4
A condição
NR==4
seleciona a quarta linha. Como nenhuma ação é especificada para essa condição,awk
faz a ação padrão que é. exatamente como queremos, para imprimir a linha.
Usando sed
A mesma coisa é possível com sed
:
$ show server pool | sed 'h;N;N;x;N; s/{\n//'
sw pool test status up
Como funciona
-
h
Isso salva a primeira linha no espaço de espera.
-
N;N
Isto lê as linhas 2 e 3.
-
x
Isso troca o espaço de espera e padrão. Isso coloca a linha 1 de volta no espaço padrão.
-
N
Isto lê a próxima linha, linha 4, no espaço padrão, anexando-o à linha 1.
-
s/{\n//
Isso remove a chave e a nova linha do final da linha 1 para que a linha 1 e a linha 4 sejam agora mescladas com a chave removida. Isso é o que é impresso.