![두 번째 파일과 일치하지 않는 첫 번째 파일의 줄 유지](https://linux55.com/image/131654/%EB%91%90%20%EB%B2%88%EC%A7%B8%20%ED%8C%8C%EC%9D%BC%EA%B3%BC%20%EC%9D%BC%EC%B9%98%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%B2%AB%20%EB%B2%88%EC%A7%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EC%A4%84%20%EC%9C%A0%EC%A7%80.png)
각각 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