첫 번째 파일의 첫 번째 열과 두 번째 파일의 두 번째 열을 비교하면 다음과 같은 출력이 제공됩니다.

첫 번째 파일의 첫 번째 열과 두 번째 파일의 두 번째 열을 비교하면 다음과 같은 출력이 제공됩니다.

파일 1: 엑셀 파일(.xls)

UN          ID    St      M1    M2       SE    DOF  PV        PA            FC
17127159    0   -5.9    297.3   765.7   0.22    4   0.003   0.00389231  2.57536
17127163    2   -3.87   189.914 492.307 0.3548  4   0.0179  0.01795     2.59226
17127167    4   -3.8908 339.136 855.276 0.3429  4   0.0176  0.017       2.52192
17127171    6   -3.922  390.44  986.365 0.340   4   0.0172179   0.01721 2.52627
17127175    8   -4.715  536.072 1210.65 0.2492  4   0.00920158  0.00920 2.258

파일 2: 텍스트 파일(.txt)

UNIT_ID   UN      TID        X       E       GG7     J     O
0      17127159 16657436 353.568 335.295 221.717 815.654 684.85
1      17127161 16657436 11.0842 7.01459 7.33511 11.2121 12.6268
2      17127163 16657450 221.647 226.774 136.274 431.32  392.533
3      17127165 16657452 5.02182 3.41172 4.12834 6.90306 4.91183

첫 번째 파일의 첫 번째 열이 두 번째 파일의 두 번째 열과 일치하는 경우 출력은 다음과 같아야 합니다.

UN         FC        TID       X       E       GG7     J     O
17127159  2.57536  16657436 353.568 335.295 221.717 815.654 684.85
17127163  2.59226  16657450 221.647 226.774 136.274 431.32  392.533

미리 감사드립니다.

답변1

그리고 awk:

$ awk 'NR==FNR{a[$2]=$3"\t"$4"\t"$5"\t"$6"\t"$7"\t"$8; next} 
              {
                if($1 in a){
                    print $1,$10,a[$1]
                }
               }' file2 file1
UN        FC        TID       X         E         GG7       J         O
17127159  2.57536   16657436  353.568   335.295   221.717   815.654   684.85
17127163  2.59226   16657450  221.647   226.774   136.274   431.32    392.533

간격이 중요한 경우(대부분의 프로그램에는 해당되지 않지만 인간에게는 그럴 수 있음) 다음을 수행할 수 있습니다.

$ awk 'NR==FNR{
               a[$2]=sprintf("%-10s%-10s%-10s%-10s%-10s%-10s",$3,$4,$5,$6,$7,$8);
               next;
              } 
              {
                if($1 in a){
                    printf("%-10s%-10s%10s\n", $1,$10,a[$1])
                }
               }' file2 file1
UN        FC        TID       X         E         GG7       J         O         
17127159  2.57536   16657436  353.568   335.295   221.717   815.654   684.85    
17127163  2.59226   16657450  221.647   226.774   136.274   431.32    392.533   

답변2

웹에서 더 많은 정보를 찾으려는 경우 도움이 될 수 있는 내용은 다음과 같습니다.

awk 'FNR==NR{a[$2]=$3;next}{print $0,a[$2]?a[$2]:"NA"}' file2 file1

관련 정보