awk を使用して 2 つのファイルをマージしようとしています。最初のファイルは次のようになります
exm-IND1-200449980 1 202183358
exm-IND1-201453487 1 203186865
exm-IND10-102817747 10 102827758
ファイル2はこんな感じ
exm-IND1-200449980_ver3 -0.0676 0.9988
exm-IND1-201453487_ver1 0.0845 0.0163
exm-IND10-102817747_ver3 -0.1154 0.5166
File1 の情報に File2 の最初の列を追加したいと考えています。両方のファイルの最初の列で一致させたいのですが、「_ver3」または「_ver1」フィールドは無視します。必要なため、この情報を取り除くことはできません。
grep は正確ではない一致を見つけると思っていましたが、試してみると
grep exm-INDI1-200449980_ver3 file1
何も返されません
私が試してみました
awk 'NR==FNR{a[$1]=$0; next;}$1 in a {print a[$1]" "$1" "$2" "$3}' file2 file1 > file3
しかし、それは私に何の出力も与えていません。完全一致のみを検索しているためだと思いますか?
ファイル 2 には ~16,000 行、ファイル 1 には ~ 1,000,000 行あります。
私が探している出力は、次のようなものになります。
exm-IND1-200449980 1 202183358 exm-IND1-20449980_ver3
exm-IND1-201453487 1 203186865 exm-IND1-201453487_ver1