Estou tentando usar o sed para recuperar o valor do 'identificador' da linha abaixo, que é a string 'TestStudioJobResponseMessages' no exemplo abaixo, também não quero usar a string uuid na minha expressão sed, pois algumas linhas podem não ter isso. Então, idealmente, o que estou procurando é o valor entre o primeiro par de aspas duplas após 'identifier ='
sed -n 's/.\*identifier=\"\(.\*\)\" .*/\1/p'
o que resultaria em tudo até o final da linha.
sibresources:SIBQueue xmi:id="SIBQueue_1298124464618" identificador="TestStudioJobResponseMessages" uuid="8CC71271B2F1D3CF65984403" description="" overrideOfQOSByProducerAllowed="true" maxFailedDeliveries="100" exceçãoDestination="$DEFAULT _EXCEPTION_DESTINATION" sendAllowed="true" recebeAllowed="true"
Responder1
Parece que você está processando um arquivo XML. Use uma ferramenta adequada de manipulação de XML, por exemploxsh:
open file.xml ;
register-namespace sr http://www.ibm.com/websphere/appserver/schemas/6.0/sibresources.xmi ;
for //sr:SIBQueue echo @identifier ;
Responder2
Usando GNU sed:
sed -r 's/.*identifier="([a-zA-Z]+)".*/\1/'
OU
sed -r 's/.*identifier="([^"]+)".*/\1/'