A condição /^mail:/
não afeta todas as instruções a seguir, apenas a primeira ( mail = $2
).
Como resultado, a segunda instrução ( print mail
) é executada para cada linha .
É por isso que há algumas linhas em branco no início da saída ( mail
ainda não está definido).
Qualquer um deles funcionará:
awk '/^mail:/ { { mail=$2 }; {print mail } };' ldif
awk '/^mail:/ { mail=$2; print mail };' ldif
Pessoalmente, prefiro:
awk '/^mail:/ { print $2 }' ldif