我正在尝试用组名替换 UNIX 中的组号
I am traying to substitute group name for group number in UNIX
我必须编写 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[]= } NR != FNR { OFS=":";=grp[] }1' /etc/group /etc/passwd
将字段分隔符设置为:然后读取/etc/group文件(NR==FNR)。创建一个由组 ID 索引的数组 grp,并将组名称作为每个条目的内容。然后处理/etc/passwd(NR!=FNR)。对于每一行,获取组 ID(第 4 个分隔字段)并将其替换为 grp[$4] 的内容,并相应地设置输出字段分隔符 (OFS)。使用 1 打印修改后的行。
我必须编写 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[]= } NR != FNR { OFS=":";=grp[] }1' /etc/group /etc/passwd
将字段分隔符设置为:然后读取/etc/group文件(NR==FNR)。创建一个由组 ID 索引的数组 grp,并将组名称作为每个条目的内容。然后处理/etc/passwd(NR!=FNR)。对于每一行,获取组 ID(第 4 个分隔字段)并将其替换为 grp[$4] 的内容,并相应地设置输出字段分隔符 (OFS)。使用 1 打印修改后的行。