获取用户列表的组名称

获取用户列表的组名称

我有一个文本文件,其中包含用户列表,格式如下:

name1   
name2   
name3   
...

调用命令组会给出该用户的主要组名称。前任:

bash$ groups name1
name1: group_Name

我想获取文本文件的所有用户的组并将该组列表放入新的文本文件中。

有谁知道这个命令吗?也许一个脚本会使用名称迭代第一个文件并调用每个名称的组,然后将输出存储在新文件中。我只需要一些具体细节方面的帮助。

答案1

逐行读取文件,groups对每一项调用:

while read name ; do groups "$name" ; done < list.txt > with_groups.txt

循环通常可以替换为xargs

xargs groups < list.txt > with_groups.txt

答案2

像这样的事情怎么样:

#!/bin/bash
while read ID
do 
    groups $ID
done < input.file |
awk '{print $3}' | sort | uniq > list_of_groups

这将为您提供按词法排序的唯一组名称列表。

相关内容