Linux의 파일 비교

Linux의 파일 비교

다음 요구 사항을 충족하도록 도와주실 수 있나요?

다음 내용을 포함하는 FILE1과 FILE2라는 두 개의 파일이 있습니다(예).

파일 1:

Column1       Column2
------------------------
M             1.2
A             11
S             hostname
T             TCP
E             120
R             Y

파일 2:

Column1        Column2
---------------------------
A             12
M             1.3
T             SSL
S             hostname1

FILE1과 FILE2의 필드 순서가 다릅니다. FILE1과 FILE2를 비교하고 FILE1의 첫 번째 열을 가져와 FILE2의 전체 열1을 검색하고 싶습니다. 일치하는 항목이 발견되면 (FILE2에서) 열2 값을 선택해야 합니다. FILE1 값의 해당 필드를 바꾸십시오.

누구든지 내 요구 사항에 도움을 줄 수 있다면 감사하겠습니다.

답변1

다음을 수행할 수 있습니다.

$ join -o 0,1.2,2.2 -a 1 <(sort -k 1,1 FILE1) <(sort -k 1,1 FILE2) |
     awk '{print $1, $NF}'
A 12
E 120
M 1.3
R Y
S hostname1
T SSL

또는 다음 줄의 순서를 유지하십시오 FILE1.

$ awk '!n {a[$1] = $2; next}
   {print $1, $1 in a ? a[$1] : $2}' FILE2 n=1 FILE1
M 1.3
A 12
S hostname1
T SSL
E 120
R Y

관련 정보