Pergunta:
Como posso encontrar correspondências de uma expressão regular de várias linhas em arquivos, sem pcregrep?
Preciso encontrar/imprimir a posição de cada ocorrência.
Infelizmente, o pcregrep não está presente e não tenho direitos para instalá-lo. Outras alternativas são grep
perl
sed
python
etc.
Um exemplo de expressão regular para pesquisar é:
Text\nLine
Contexto:
Um script fornece centenas de MB de texto estruturado em algumas dezenas de arquivos, mas infelizmente algumas linhas estão faltando (por vários motivos). Eu preciso verificar onde essas linhas estão faltando, procurando assim a sequência das linhas anteriores e seguintes.
Text
Missing //this line is sometimes missing.
Line
EDITADO:
Possível entrada
exemplo.txt
Text
Missing
Line
Text
Missing
Line
Text
Line
Text
Missing
Line
Saída possível:
exemplo.txt, linha 10
Algumas das tentativas sem sucesso:
pcregrep
# command not found
apt-get install pcregrep
# no permission, no su credentials, distro don't provide pcregrep, outdated sources, customer does not want changes on the serve, etc.
sed -r 's#(Text\nLine)#\1#' ./*
# print all lines, not only matches, no indication of file or line, etc.
grep 'Text\nLine' ./*
# Does not works on multi-lines
sed -n '/Text/,/Line/{p}' ./*
# Not the same regex, does not indicate result lines, etc.