Com o comando único awk
:
awk -F':' 'NR==FNR{ a[$3]=$1; next }{ print $1", "a[$4] }' /etc/group /etc/passwd
-
-F':'
- separador de campos -
NR==FNR{ a[$3]=$1; next }
- processando o primeiro arquivo de entrada (ou seja,/etc/group
):-
a[$3]=$1
- capture nome do grupo$1
usando identificador de grupo$3
como arraya
key -
next
- pula para o próximo registro
-
-
{ print $1", "a[$4] }
- ação para o segundo arquivo de entrada (por exemplo,/etc/passwd
):-
$1
- o primeiro campo; indicando nome de usuário -
a[$4]
- obter nome do grupo por id do grupo (apresentado pelo campo$4
)
-