Imprimir conteúdo entre colchetes em linhas diferentes [duplicado]

2

Como imprimir o conteúdo entre dois colchetes.

Por exemplo:

return [ "server1.domain.com" ,

"server2.domain.com" ,

"server3.domain.com" ]

Resultado esperado:

   "server1.domain.com" ,

   "server2.domain.com" ,

   "server3.domain.com"

Como obter o resultado esperado?

    
por manth 14.09.2016 / 14:33

2 respostas

4

com pcregrep :

pcregrep -Mo 'return \[\K[^]]*'

M correspondência de ultilina em return [ seguida por uma sequência de caracteres que não são ] , mas apenas o utput a parte para K eep (à direita de \K ).

    
por 14.09.2016 / 14:48
1

com sed

sed '
    /.*\[ /{
        s///        #remove all upto open square bracket 
        :a          #return mark
        /\ ].*/!{
            N       #get next line untill there is close square bracket
            ba      #back to return mark
        }
        s///        #remove all from close square bracket to end of line 
     }
     '
    
por 14.09.2016 / 16:01