如何合并两个/etc/group文件

如何合并两个/etc/group文件

我有两个 /etc/group 样式的文件:

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:username
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
ubuntu:x:999:

我想将它们合并到第三个文件中,但 GID 不应在合并的文件中出现两次。如何使用 bash 命令来完成此操作?我以为可以用 来完成awk,但目前找不到解决方案。

编辑我需要保留每个文件的原始 GID,可能有两个具有相同名称的组,但 GID 不同。在输出文件中,GID 应该是唯一的`

答案1

awk -F: 'BEGIN { OFS=":" } { print $1,"x",NR,$5 }' file1 file2 file3

答案2

这将从两个文件中选择名字和号码:

awk -F: -vOFS=":" '{if(!($1 in gname || $3 in gnumber)){print $1,"x",$3,$4};gname[$1]=1;gnumber[$3]=1}' file1 file2

相关内容