Isso pode ser uma abordagem:
$ awk '/^ora/ {split($0,a,"."); next} {print a[2], a[2]$1, $2, $4}' a
abc abc1 ONLINE serverA
abc abc2 ONLINE serverB
xyz xyz1 ONLINE serverA
xyz xyz2 ONLINE serverB
xyz xyz2 ONLINE serverC
Explicação
-
/^ora/
aplica-se às linhas que começam comora
. Nesses,split
do conteúdo baseado no ponto.
e armazená-lo na matriza
. Então, éa[1]=ora
,a[2]=abc
, ... Entãonext
fazawk
ir para a próxima linha. -
print
imprime o segundo campo da matriza
mais elementos diferentes da linha:$1
indicando a primeira,$4
indicando a quarta.