$ zgrep -B2 'warning : no profile data' *.gz | grep -o '^ID:[0-9]*'
ID:123455
Como apontado por user3188445, zgrep
irá grep para strings dentro de arquivos (possivelmente compactados). Usando -B2
para imprimir 2 linhas antes da correspondência de aviso e, em seguida, extrair as IDs de todos os arquivos correspondentes usando um padrão grep
em relação a stdout
.
Isso funcionará se você tiver vários arquivos compactados ou várias seções correspondentes no mesmo arquivo.