Просто сделайте это тривиальным, очевидным, надежным, переносимым способом:
zcat engine.*.log.gz | awk -v RS= '/Text/{print; exit}'
Это также должно быть довольно эффективным, поскольку SIGPIPE
, который zcat
получает, когда awk
выходит при поиске первого Text
должен завершить zcat
.
Или, если Text
может появляться несколько раз на входе, и вы хотите, чтобы все связанные записи выводились:
zcat engine.*.log.gz | awk -v RS= -v ORS='\n\n' '/Text/'