Leia o arquivo linha por linha, chame groups
para cada item:
while read name ; do groups "$name" ; done < list.txt > with_groups.txt
Os loops muitas vezes podem ser substituídos por xargs
:
xargs groups < list.txt > with_groups.txt
Eu tenho arquivos de texto com uma lista de usuários formatados como:
name1
name2
name3
...
Chamar os grupos de comandos fornece o nome do grupo principal para esse usuário. ex:
bash$ groups name1
name1: group_Name
Eu quero pegar os grupos de todos os usuários do arquivo de texto e colocar essa lista de grupos em um novo arquivo de texto.
Alguém sabe um comando para isso? Talvez um script repita o primeiro arquivo com os nomes e chama grupos em cada nome e, em seguida, armazene a saída em um novo arquivo. Eu só preciso de uma pequena ajuda com os detalhes.
Que tal algo como isto:
#!/bin/bash
while read ID
do
groups $ID
done < input.file |
awk '{print $3}' | sort | uniq > list_of_groups
Isso faz com que você tenha uma lista única de nomes de grupos lexicalmente classificados.