Usando apenas o shell script, como pesquisar um arquivo de texto e listar todos os blocos inteiros de linhas dentro de algum texto (critérios simples do grep).
O arquivo de texto tem blocos de linhas separadas por "-----------------"
(precisamente, cada bloco começa com "\n\n\n--------------------"
... cerca de 50 caracteres "-").
Uma amostra pode ser:
-------------------------------
Abracadabra, blablablalbalba
blablablabla, banana
-------------------------------
Text, sample text, sample text, sample text
Text, sample text, sample text, sample text
Text, sample text, sample text, sample text
Text, sample text, sample text, sample text
-------------------------------
Text, sample text, sample text, sample text
banana. Sample text, sample text, sample text, sample text
Text, sample text, sample text, sample text
Vamos considerar a palavra "banana" como critério de pesquisa. Então, os blocos listados seriam:
-------------------------------
Abracadabra, blablablalbalba
blablablabla, banana
-------------------------------
Text, sample text, sample text, sample text
banana. Sample text, sample text, sample text, sample text
Text, sample text, sample text, sample text
EDITAR:
Testando respostas para tentar o awk, como: awk 'BEGIN{RS="\n------------"}/INFO/{print}'
onde INFO é o que foi procurado. Eu não consigo o bloco inteiro. Então, segue uma amostra real e o resultado:
UMA AMOSTRA REAL (incluindo as primeiras 3 novas linhas):
-------------------------------------------------
Diretório separado do nome o arquivo: adis, IWZLM (/home/interx/adis/src/IWZLM.SRC)
Gerando rotina em linguagem C:
(yla5 adis IWZLM -if)
.INFO =>Rotina BLOQUEADA (status 'M'): Geracao ignorada (use -is para ignorar checagem do status)
[ OK-I ] IWZLM (adis) - Lista lay: Geracao ignorada do codigo em C.
-------------------------------------------------
Diretório separado do nome d arquivo: adis, ADISA (/home/interx/adis/src/ADISA.SRC)
Gerando rotina em linguagem C:
(yla5 adis ADISA -if)
.ERRO: Falha inesperada
Compilando o programa:
(ycomp adis ADISA -exe adis/exe/ADISA.temp.exe )
adis/exe/ADISA.temp.exe => adis/exe/ADISA
[ OK ] ADISA (adis) - Menu A : Gerada e compilada com sucesso.
-------------------------------------------------
Diretório separado do nome o arquivo: adis, ADISD1 (/home/interx/adis/src/ADISD1.SRC)
Gerando rotina em linguagem C:
(yla5 adis ADISD1 -if)
.ATENCAO: Definicao nao localizada
Compilando o programa:
(ycomp adis ADISD1 -exe adis/exe/ADISD1.temp.exe )
adis/exe/ADISD1.temp.exe => adis/exe/ADISD1
[ OK ] ADISD1 (adis) - Menu : Gerada e compilada com sucesso.
Não consigo obter o bloco inteiro, apenas a linha que contém "INFO", como um grep comum, seja configurando ou não ORS:
$ cat file | awk 'BEGIN{RS="\n------------"}/INFO/{print}'
.INFO =>Rotina BLOQUEADA (status 'M'): Geracao ignorada (use -is para ignorar checagem do status)
NOTAS:
É o awk do AIX 7.1, não o gawk.