2つの/ etc / groupファイルをマージする方法

2つの/ etc / groupファイルをマージする方法

2つの/ 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:

3番目のファイルにマージしたいのですが、マージされたファイルにGIDを2回表示しないでください。 bashコマンドを使用してこれをどのように実行できますか?これを使うと解決できると思いましたが、awk現時点では解決策を見つけることができません。

編集各ファイルの元のGIDを維持する必要があります。名前は同じですが、GIDが異なる2つのグループがある可能性があります。出力ファイルでは、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

関連情報