1

Я хочу извлечь текст между шаблоном, который начинается с первых вхождений « SCRIPT:main, SIB:orvault/inap/si8/begin » и заканчивается первыми вхождениями » ------------- -------------------------------------------------- - "

Код, который я пробовал

sed -n -e '/SCRIPT:main, SIB:orvault\/inap\/si8\/begin,/,/-----------------------------------------------------------------/p' trace.log > operation.log

Проблема в том, что текстовый шаблон встречается более одного раза, как в приведенном ниже Trace.log, есть два вхождения « SCRIPT:main, SIB:orvault/inap/si8/begin » и « --------- -------------------------------------------------- ------ "в trace.log. Приведенный выше код извлекает текст от начального вхождения шаблона «SCRIPT:m ....» до конечного вхождения шаблона «----------...».

Как мне действовать дальше, пожалуйста, предложите, так как чтение файла не вариант.

Вход Trace.log

    State[9] 1001010 , SCRIPT:main, SIB:orvault/inap/si8/begin,nParam=71
38 09:44:06......... script.cxx.1232: SIB input 
38 09:44:06......... script.cxx.1250: stopstats(conte
38 09:44:06......... script.cxx.1496: Calling SIB orv
38 09:44:06......... begin.cxx.73: TEL-
    serviceKey 10,
    calledPartyNumber -- void --,
,
    callingPartyNumber '84
,
    callingPartys'0
    iPSSPCapabilit-,
    iPAvailable -- void --,
,
    locationNumber '03
,
    extensions {
38 09:44:06......... script.cxx.785: -----------------------------------------------------------------
38 09:44:06......... begin.cxx.112: TELKOM:SINAP Forward Call Indicators copied in context.
38 09:44:06......... begin.cxx.146: TELKOM:SINAP Calling Party Number copied in context.
38 09:44:06......... begin.cxx.156: Called Party BCD Number copied in context
38 09:44:06......... begin.cxx.169: TELKOM:SINAP Calling Partys Category copied in context.
38 09:44:06......... begin.cxx.193: LOCATION NUMBER NATURE OF ADDRESS IS:   3
38 09:44:06......... begin.cxx.244: TELKOM:SINAP Location Number copied in context.
38 09:44:06......... begin.cxx.249: initial location number is 216F7480553535
38 09:44:06......... begin.cxx.263: LAI=216F7480553535
38 09:44:06......... begin.cxx.267: here1216F7480553535
38 09:44:06......... begin.cxx.283: intLAC:32853
38 09:44:06......... begin.cxx.290: intCID:13621
38 09:44:06......... begin.cxx.295: MCC=12F
38 09:44:06......... begin.cxx.296: MNC=47
38 09:44:06......... begin.cxx.297: LAC=32853
State[9] 1001010 , SCRIPT:main, SIB:orvault/inap/si8/begin,nParam=71
38 09:44:06......... script.cxx.1617: cld(context.cld) = 
38 09:44:06......... script.cxx.1617: cld_bcd(context.cld_bcd) = 1612
38 09:44:06......... script.cxx.1617: cld_bcd_nat(context.cld_bcd_nat) = 0
38 09:44:06......... script.cxx.1617: cld_bcd_plan(context.cld_bcd_plan) = 9
38 09:44:06......... script.cxx.1617: cld_inn(context.inn_cld) = 4294967295
38 09:44:06......... script.cxx.1617: cld_nat(context.nat_cld) = 4294967295
38 09:44:06......... script.cxx.1617: cld_plan(context.plan_cld) = 4294967295
38 09:44:06......... script.cxx.785: -----------------------------------------------------------------
38 09:44:06......... script.cxx.1617: cld_nat(context.nat_cld) = 23
38 09:44:06......... script.cxx.1617: cld_plan(context.plan_cld) =  56

1 ответ1

0

С Sed используйте /q для остановки после первого матча.

Похоже, что это дублирует этот вопрос на U & L, который также имеет различные другие решения.

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