파일을 병합하는 중 오류가 발생했습니다.

파일을 병합하는 중 오류가 발생했습니다.

두 개의 파일이 있습니다.

파일 1

212 21  24.8    13.8354303  15.2841303
258 21  22.2    15.8507278  17.2994278
270 21  27.8    13.0482192  14.4969192
204 21  22.4    13.9465939  15.3952939
248 21  16.6    9.2714745   11.6494745
279 21  22.8    12.9151566  15.2931566

파일 2

212 21  24.8    1.03    2.8954
258 21  22.2    1.03    2.8954
270 21  27.8    1.05    2.9154
204 21  22.4    1.21    3.0754
248 21  16.6    1.29    3.1554
279 21  22.8    1.47    3.3354

다음 방법으로 두 가지 모두에 참여해야 합니다.

212 21  24.8    13.8354303  15.2841303  1.03    2.8954
258 21  22.2    15.8507278  17.2994278  1.03    2.8954
270 21  27.8    13.0482192  14.4969192  1.05    2.9154
204 21  22.4    13.9465939  15.3952939  1.21    3.0754
248 21  16.6    9.2714745   11.6494745  1.29    3.1554
279 21  22.8    12.9151566  15.2931566  1.47    3.3354

그러나 나는 다음 awk명령을 사용했습니다.

awk 'NR==FNR{a[$1]=$4 FS $5;next}$1 in a{print $1,$2,$3,$4,$5,a[$1]}'  File2 File1 > output

나는 이 파일을 얻었다:

산출

212 21  24.8    13.8354303  15.2841303
1.03    2.8954          
258 21  22.2    15.8507278  17.2994278
1.03    2.8954          
270 21  27.8    13.0482192  14.4969192
1.05    2.9154          
204 21  22.4    13.9465939  15.3952939
1.21    3.0754          
248 21  16.6    9.2714745   11.6494745
1.29    3.1554          
279 21  22.8    12.9151566  15.2931566
1.47    3.3354          

내가 뭘 잘못하고 있는지 모르겠습니다. 내 파일에는 약 400줄이 있습니다.

답변1

데이터가 정렬되었다고 가정하면 이 경우 join다음 명령을 사용합니다.

join -o 1.1 1.2 1.3 1.4 1.5 2.4 2.5 file1.txt file2.txt 
212 21 24.8 13.8354303 15.2841303 1.03 2.8954
258 21 22.2 15.8507278 17.2994278 1.03 2.8954
270 21 27.8 13.0482192 14.4969192 1.05 2.9154
204 21 22.4 13.9465939 15.3952939 1.21 3.0754
248 21 16.6 9.2714745 11.6494745 1.29 3.1554
279 21 22.8 12.9151566 15.2931566 1.47 3.3354

스타일을 사용하여 형식을 지정할 수 있습니다 -o. x.y여기서는 x파일이고 y필드입니다.

답변2

참고하시기 바랍니다가입하다올바른 결과 file1과 file2는 먼저 첫 번째 필드를 기준으로 정렬되어야 합니다.
케이스가 없고 질서를 유지하고 싶은 경우

awk '
    FNR==NR{a[$1]=$4 OFS $5; next}
    $1 in a{print $0, a[$1]}
    ' OFS='\t' file2 file1

관련 정보