Como juntar dois arquivos / etc / group

1

Eu tenho dois arquivos no estilo de / 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:

E eu quero mesclá-los em um terceiro arquivo, mas nenhum GID deve ocorrer duas vezes no arquivo mesclado. Como isso pode ser feito usando o comando bash? Eu estava pensando que isso poderia ser feito com awk , mas não consigo encontrar uma solução no momento.

EDIT Eu preciso manter o GID original de cada arquivo pode haver dois grupos com o mesmo nome, mas não com o mesmo GID. no arquivo de saída, o GID deve ser único '

    
por AndrewD 25.01.2018 / 22:22

2 respostas

0

awk -F: 'BEGIN { OFS=":" } { print $1,"x",NR,$5 }' file1 file2 file3
    
por 25.01.2018 / 22:24
0

Isso selecionará o primeiro nome e o número dos dois arquivos:

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