我必须编写 skrypt 来显示文件 /etc/passwd 为什么 GroupID 将由 GroupName 交换
我有两个文件,看起来像:
-> /etc/passwd 结构:UserName:x:UserID:GroupID:description:homeFile:DefaultInterpreter
-> /etc/group 结构:GroupName:x:GroupID:AdditionalUsers
您可以使用 awk 处理 /etc/group 和 /etc/passwd 来做到这一点
awk -F: 'NR==FNR { grp[$3]=$1 } NR != FNR { OFS=":";$4=grp[$4] }1' /etc/group /etc/passwd
将字段分隔符设置为 : 然后读取 /etc/group 文件 (NR==FNR)。创建一个由组 ID 索引的数组 grp,其中组名称作为每个条目的内容。然后处理 /etc/passwd (NR!=FNR)。对于每一行,获取组 ID(第 4 个分隔字段)并将其替换为 grp[$4] 的内容,并相应地设置输出字段分隔符 (OFS)。使用 1 打印修改后的行。