다음 요구 사항을 충족하도록 도와주실 수 있나요?
다음 내용을 포함하는 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