それぞれ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
最初のファイルの最後のフィールドをキーとして連想配列(またはハッシュ)を作成し、2番目のファイルの最後のフィールドが有効なキーではないことを確認できます。
$ 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