Я пытаюсь использовать sed для получения значения 'identifier' из строки ниже, которая является строкой 'TestStudioJobResponseMessages' в примере ниже, также я не хочу использовать строку uuid в моем выражении sed, так как некоторые строки могут не иметь этого. Поэтому в идеале я ищу значение между первой парой двойных кавычек после 'identifier ='

sed -n 's/.\*identifier=\"\(.\*\)\" .*/\1/p'

что приведет все до конца строки.

sibresources:SIBQueue xmi:id = "SIBQueue_1298124464618" identifier = "TestStudioJobResponseMessages" uuid = "8CC71271B2F1D3CF65984403" description = "" overrideOfQOSByProducerAllowed = "true_lowD = = true_Devel_Devald =" true_DELDED_DELDED_DELD_DEL_DED_DEL_DED_DAL_E_LED_DAL_DAL_S_D_D_W_D_T_L_T_L_T_L_T_L_T_L_T.

2 ответа2

0

Вы, кажется, обрабатываете файл XML. Используйте подходящий инструмент для обработки XML, например, xsh:

open file.xml ;
register-namespace sr http://www.ibm.com/websphere/appserver/schemas/6.0/sibresources.xmi ;
for //sr:SIBQueue echo @identifier ;
0

Использование GNU sed:

sed -r 's/.*identifier="([a-zA-Z]+)".*/\1/'

ИЛИ ЖЕ

sed -r 's/.*identifier="([^"]+)".*/\1/'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .