Questões impossíveis, mas não pra nos! Vamo lá:
O examinador quer: "...imprime o nome de login e o nome do grupo principal"
Basicamente o comando cut extrair cadeias de caracteres de um campo ( chave -f ) através de um delimitador padrão ( chave -d)
Primeiramente vamos comentar o gabarito da questão ALTERNATIVA E
cut -d: -f1,4 /etc/passwd |
...........................# Utiliza a chave -d, com o caracter : para delimitar os campos -f 1 e 4 do arquivo /etc/passwd
........................# Os campos 1 e 4 são Login e GID
while read x; do y=`echo $x | cut -d: -f1`;
.......................... #Estamos lendo o arquivo que extraímos do 1º cut, ele possui somente 2 campos:
......................# Login e GID, a chave - f extrai o 1ª campo e atribui a variável y ( ou seja, y=login)
z=`echo $x | cut -d: -f2`;
...........................#Ainda estamos lendo o arquivo extraído do 1º cut, porém agora iremos pegar o 2º campo -f2
......................#Lembrando que o 2º campo é o GID, que é um valor inteiro, e atribuímos a variável z (z=GID)
w=`cut -d: -f1,3 /etc/ group | grep “:$z$” | cut -d: -f1`;
......................#Extraímos do arquivo /etc/group o 1º e 3º campo (-f1,3) que são, respectivamente, o Nome do grupo ................#ID do Grupo, na filtramos a saída ( grep ) do cut para retornar somente a linha que possua o valor de Z, ................#lembrando que a variável z = GID, extraímos da saída do grep o primeiro campo ( -f1), ou seja, o NOME DO ................#GRUPO e atribuímos a variável w ( w=NOME DO GRUPO)
echo “$y:$w”; done
................#Login e Nome do grupo serão impressos