Como você percebeu que você "não precisa dos 2 arquivos" , use a seguinte awk
solução para processar o log inicial arquivo em uma passagem:
awk '{
u_name = substr($5, 1, index($5, "@"));
if (!(u_name in users)) users[u_name] = ++c;
sub(/^[^@]+/, "USER" users[u_name], $5)
}1' file.log
A saída:
12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER2@hostname
12:00:00 (AAA) OUT: "string" USER1@hostname
12:00:00 (AAA) OUT: "string" USER3@hostname