Com Sed, use / q para parar após o primeiro jogo.
Esta parece ser uma duplicata desta pergunta no U & L que tem várias outras soluções também.
Desejo extrair o texto entre o padrão que começa com as primeiras ocorrências de " SCRIPT: main, SIB: orvault / inap / si8 / begin, " e termina com as primeiras ocorrências " ------------------------------------------ ----------------------- "
Código que tentei
sed -n -e '/SCRIPT:main, SIB:orvault\/inap\/si8\/begin,/,/-----------------------------------------------------------------/p' trace.log > operation.log
O problema é quando o padrão de texto ocorre mais de uma vez, como no Trace.log abaixo, há duas ocorrências de " SCRIPT: main, SIB: orvault / inap / si8 / begin, " e " --------------------------------------------- -------------------- "no trace.log. O código acima busca o texto entre a ocorrência inicial do padrão "SCRIPT: m ...." até a ocorrência final do padrão "----------... ".
Como devo proceder, sugiro que a leitura do arquivo não seja uma opção.
Input 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
Com Sed, use / q para parar após o primeiro jogo.
Esta parece ser uma duplicata desta pergunta no U & L que tem várias outras soluções também.