Lo siguiente hace un JOIN relacional en los dos archivos en el GID y genera el nombre de usuario y el nombre del grupo con un :
en -entre:
join -t : -1 4 -2 3 -o 1.1,2.1 \
<( sort -t : -k4,4 /etc/passwd ) \
<( sort -t : -k3,3 /etc/group )
El GID está en la columna 4 del archivo passwd
y en la columna 3 del archivo group
.
Con -1
y -2
especificamos cuál es el campo de unión en los dos archivos de entrada y con -o
especificamos qué campos queremos generar de cada archivo (el primer campo de cada archivo ).
La clasificación de cada archivo en el campo de combinación es necesaria para que join
funcione.
Para obtener esto en el formato exacto solicitado, solo canalícelo a través de sed 's/:/, /'
que reemplaza los dos puntos con coma y espacio.