2つのファイルがあります。 1つはbiiiiiigファイル(249430行)で、もう1つは最初のファイル(500行)より小さいです。
最初のファイルには、この5つの列と他の列(2番目のファイルの最初の5つの列と同じ)があります。
#CHROM POS ID REF ALT QUAL INFO
chr2 32424454 rs4576493 T G pass ......
chr8 35578788 rs3686678 C A pass .........
chr8 35578788 rs3686678 C CCG pass .........
chrx 35578788 rs3686678 C CCG pass .........
2番目のファイルには5つの列があります。たとえば、次のようになります。
#CHROM POS ID REF ALT
chr2 32424454 rs4576493 T G
chr8 35578788 rs3686678 C CCG
2番目のファイルの5番目の列を最初のファイルと比較してから、ファイル間の交差行のみを保存したいのですが(ファイル1のすべての列を含む)。
だから私が望む最終ファイルは次のようになります
#CHROM POS ID REF ALT QUAL INFO
chr2 32424454 rs4576493 T G pass ......
chr8 35578788 rs3686678 C CCG pass .........
Unixでは何をすべきですか?ありがとう
ベストアンサー1
awkを使用してください。
awk '
{ key = $1 FS $2 FS $3 FS $4 FS $5 }
NR==FNR { a[key]; next }
key in a
' file2 file1