
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