Вместо этого можно работать с awk
:
gzcat file.gz | awk '/No Profile Data/{printf "%s\n%s\n%s\n", b, a, $0} {b=a;a=$0}'
gzcat
(или zcat
под Linux) печатает содержимое gzipped-файла на стандартный выводawk
, затем ищет строку "No Profile Data"
и печатает две предыдущие строки