Tente usar:
awk 'BEGIN { RS="[" } { if (index($0, "cics]") == 1) print; }'
Para filtrar sua entrada. Não incluirá os caracteres [
.
Sugiro usar a saída de awk
diretamente, em vez de usar um arquivo temporário.
Estou executando um script que recebe sua entrada de stdin. Esta entrada pode acabar sendo muito grande, então eu quero extrair a parte em que estou interessado em um arquivo temporário.
A primeira linha contém "[cics]" e eu quero escrever tudo a partir desse ponto até o próximo "[" para um arquivo temporário.
Nunca realmente trabalhei com stdin em scripts antes de não ter certeza de como fazer isso.
Tente usar:
awk 'BEGIN { RS="[" } { if (index($0, "cics]") == 1) print; }'
Para filtrar sua entrada. Não incluirá os caracteres [
.
Sugiro usar a saída de awk
diretamente, em vez de usar um arquivo temporário.
Você pode fazer isso facilmente com sed
:
sed -n '/\[cics\]/,/\[/p' <<-END
one
two [cics]
three
four
[five]
six
[seven]
[cics] eight
[nine]
ten
END
two [cics]
three
four
[five]
[cics] eight
[nine]