Você poderia fazer algo assim:
awk -F: '{ print $1" "$5 }' /etc/passwd | sort -k2
Isso analisará os campos nome de usuário e comentário de /etc/passwd
e sort
no segundo campo, que será o primeiro nome do usuário, desde que eles estejam listados no primeiro nome e na ordem do sobrenome.
Aqui está um exemplo de incorporação de grep
:
grep "500\|501\|502" /etc/passwd | awk -F: '{ print $1" "$5 }' | sort -k2
jira Atlassian JIRA
dick Richard Jameson
bob Robert Gillespie
EDITAR:
Use isso para reverter o sobrenome, a ordenação do nome do arquivo /etc/passwd
:
awk -F: '{ print $1" "$5 }' /etc/passwd | awk '{ print $1" "$3" "$2 }' | sort -k2
O exemplo acima foi modificado para lastname, firstname no arquivo /etc/passwd
:
grep "500\|501\|502" /etc/passwd | awk -F: '{ print $1" "$5 }' | awk '{ print $1" "$3" "$2 }' | sort -k2
Isso funciona se não houver e não houver nenhuma vírgula separando primeiro / último, último / primeiro nome.
EDIT (o segundo):
Como os últimos / primeiros nomes são separados por vírgula, isso deve funcionar:
awk -F: /$id_prefix/'{ print $1" "$5 }' /etc/passwd | awk -F, '{ print $1" "$2 }' | awk '{ print $1" "$3" "$2 }' | sort -k2
Obrigado ao @Jidder por recomendar que não seja canalizado de grep
para awk
.