두 번째 파일과 일치하지 않는 첫 번째 파일의 줄 유지

두 번째 파일과 일치하지 않는 첫 번째 파일의 줄 유지

각각 1000줄이 넘는 파일이 2개 있습니다.

head file 1


3.3    6.6    10    0    0.6    0.33    "Ha1_00044004__C"
0      0       0   10     0       1     "Ha1_00043486__A"
3.3    6.6    10    0    0.6    0.3     "Ha1_00045379__C"
3      6       9    1    0.6    0.4     "Ha1_00045316__C"

head file 2
0    0    0    10    0    1     "Ha1_00043486__A"
0    0    0    10    0    1     "Ha1_00043840__A"
0    0    0    10    0    1     "Ha1_00043671__A"
0    0    0    10    0    1     "Ha1_00044403__A"
3.3    6.6    10    0    0.6    0.3     "Ha1_00045379__C"
3      6       9    1    0.6    0.4     "Ha1_00045316__C"

마지막 열이 file2의 마지막 열과 "일치하지 않는" file1의 행만 유지하고 싶습니다. 도움을 주시면 감사하겠습니다.

내가 원하는 출력

3.3    6.6    10    0    0.6    0.33    "Ha1_00044004__C"

답변1

첫 번째 파일의 마지막 필드를 키로 사용하여 연관 배열(또는 해시)을 만든 다음 두 번째 파일의 마지막 필드가 유효한 키가 아닌지 확인할 수 있습니다.

$ awk 'NR==FNR {a[$NF]++; next} !($NF in a)' file2 file1
3.3    6.6    10    0    0.6    0.33    "Ha1_00044004__C"

답변2

노력하다:

grep -vf <(awk '{print $7}' < file2) file1

관련 정보