assumindo que o IP e o GUID tenham uma posição fixa
/connected/ {
name = substr($0,index($0,$4)+length($4)+1) ;
nip=NF-1 ;
name = substr(name,1,index(name,$nip)-2) ;
session[$4]=name ;
connected[name]=$0 ;
ip[name]=$nip ;
}
/GUID/ {
if ( $4 in session ) {
ngu = NF-1 ;
guid=$ngu ;
printf "%s - %s - %s -%s\n",$1,session[$4],guid,ip[session[$4]] ;
delete session[$4] ;
}
}
- sem branco no IP, GUID ...
- o nome é capturado na conexão
- Demorei na linha GUID, registrando o tempo de conexão que pode ser salvo da mesma maneira que para o IP.
- Saí como exercício para remover
( :2304)
do IP ...
como resultado
23:57:22 - Simplename - 1234567890abcdef123456789aaaaa00 -(10.21.23.32:2304)
23:56:15 - [Som(e) name] Gabriel - 1234567890abcdef123456789bbbbb00 -(10.21.23.33:2304)
23:56:52 - [gp0] SomeN@me 123 - 1234567890abcdef123456789aaaaa02 -(10.21.23.34:2304)
23:57:19 - [gp0] SomeN@me 123 - 1234567890abcdef123456789aaaaa03 -(10.21.23.44:2304)
23:57:53 - <<t>> 'N@me5_Can=Be..Hard - 1234567890abcdef123456789aaaaa04 -(10.21.23.32:2304)
Nota:
- a sessão # 99 pode ser entrelaçada, mas não com o mesmo número. O código
- pode ser alterado para entrar no nome do jogador.
MAS
- você não pode misturar o número da sessão E ter o mesmo nome de jogador.