awk は、重複する項目を含む、一致するすべての行を印刷します。

awk は、重複する項目を含む、一致するすべての行を印刷します。

2つのファイル間に一致するすべての行(重複を含む)を印刷する方法

ソースファイル:

SNP value
RS1 0.55
RS2 0.52
RS3 0.25
RS4 0.22

クエリファイル:

SNP
RS1
RS2
RS2
RS3
RS4
RS4

希望の出力:

SNP value
RS1 0.55
RS2 0.52
RS2 0.52
RS3 0.25
RS4 0.22
RS4 0.22

現在一致する行を検索するには、次のコマンドを使用していますが、重複項目は削除されますが、重複項目を含むすべての行を印刷する必要があります。

どんな提案でもお願いします

ありがとう

awk 'BEGIN{FS=OFS="\t"}NR==FNR{a[$1]=$0;next}a[$1]{print}' queryfile sourcefile > output

ベストアンサー1

このjoinコマンドはこれら2つのファイルを一緒にリンクします。

join sourcefile queryfile

出力(サンプルファイルから)

SNP value
RS1 0.55
RS2 0.52
RS2 0.52
RS3 0.25
RS4 0.22
RS4 0.22

おすすめ記事