awk -F: 'BEGIN { OFS=":" } { print $1,"x",NR,$5 }' file1 file2 file3
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 '
awk -F: 'BEGIN { OFS=":" } { print $1,"x",NR,$5 }' file1 file2 file3
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
Tags merge files text-processing awk group