
Estoy intentando usar sed para recuperar el valor del 'identificador' de la línea siguiente, que es la cadena 'TestStudioJobResponseMessages' en el siguiente ejemplo, y tampoco quiero usar la cadena uuid en mi expresión sed ya que es posible que algunas líneas no la tengan. Idealmente, lo que estoy buscando es el valor entre el primer par de comillas dobles después de 'identificador='
sed -n 's/.\*identifier=\"\(.\*\)\" .*/\1/p'
lo que resultaría todo hasta el final de la línea.
sibresources:SIBQueue xmi:id="SIBQueue_1298124464618" identifier="TestStudioJobResponseMessages" uuid="8CC71271B2F1D3CF65984403" descripción="" overrideOfQOSByProducerAllowed="true" maxFailedDeliveries="100"ExceptionDestination="$DEFAULT _EXCEPTION_DESTINATION" sendAllowed="true" recibirAllowed="true"
Respuesta1
Parece que estás procesando un archivo XML. Utilice una herramienta de manejo de XML adecuada, por ejemploxsh:
open file.xml ;
register-namespace sr http://www.ibm.com/websphere/appserver/schemas/6.0/sibresources.xmi ;
for //sr:SIBQueue echo @identifier ;
Respuesta2
Usando GNU sed:
sed -r 's/.*identifier="([a-zA-Z]+)".*/\1/'
O
sed -r 's/.*identifier="([^"]+)".*/\1/'