Tente:
$ gawk 'BEGIN{RS="\n2016"}; /user1/ {print}' input
Isso produz a saída;
2016-05-31 09:54:36 (16667) heritage_w?
From: ip68-8-49-100.sd.sd.cox.net
User: user1wizard (wizard)
Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
Referer: http://dbase.apollo3.com/heritage_w?i=290
#accesses 3,435 (#welcome 415) since 03/07/2012
-05-31 09:54:41 (16677) heritage_w?w=
From: ip68-8-49-100.sd.sd.cox.net
User: user1wizard (wizard)
Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
Referer: http://dbase.apollo3.com/heritage_w?
#accesses 3,436 (#welcome 416) since 03/07/2012
Observe que o segundo registro não possui o 2016
inicial. Isso é. é claro, porque 2016
se tornou parte do separador de registros. Se você deseja restaurar essa parte antes de iniciar qualquer processamento de um registro:
gawk 'BEGIN{RS="\n2016"} NR>1{$0="2016" $0;} /user1/ {print}' input
Melhoria
Esta versão restaura o texto conforme necessário para o início de cada linha:
gawk '{$0=substr(last,2)$0;} /user1/{print} {last=RT}' RS='\n[^[:space:]]' input
Como funciona:
-
{$0=substr(last,2)$0;}
prepends para$0
o texto que foi removido pelo separador de registro.substr
é usado para remover a nova linha anterior. -
/user1/{print}
imprime os registros nos quais estamos interessados. -
{last=RT}
salva o separador de registros real para que parte dele possa ser anexada ao próximo registro.RT
é uma extensão GNU e não é suportada por outras versões do awk. -
RS='\n[^[:space:]]'
define o separador de registro como uma nova linha, seguido por qualquer não-espaço. Usar um regex como um separador de registro funciona com o GNU awk.
Exemplo:
$ gawk '{$0=substr(last,2)$0;} /user1/{print} {last=RT}' RS='\n[^[:space:]]' input
2016-05-31 09:54:36 (16667) heritage_w?
From: ip68-8-49-100.sd.sd.cox.net
User: user1wizard (wizard)
Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
Referer: http://dbase.apollo3.com/heritage_w?i=290
#accesses 3,435 (#welcome 415) since 03/07/2012
2016-05-31 09:54:41 (16677) heritage_w?w=
From: ip68-8-49-100.sd.sd.cox.net
User: user1wizard (wizard)
Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
Referer: http://dbase.apollo3.com/heritage_w?
#accesses 3,436 (#welcome 416) since 03/07/2012