두 개의 /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