Uma solução awk
:
$ awk 'NR==FNR{a[$1$2]++;next}{if($1$3 in a){print}}' file1 file2
scaffold1 57481 57482 T/A +
scaffold1 63113 63114 T/A,G +
scaffold1 63128 63129 G/C +
scaffold2 65014 65015 G/A +
scaffold2 77267 77268 G/A +
scaffold2 77334 77335 C/T +
NR
é o número da linha atual e FNR
do número da linha atual do arquivo atual. Os dois serão iguais apenas enquanto o primeiro arquivo estiver sendo lido. Assim, o primeiro bloco só será executado enquanto o primeiro arquivo estiver sendo lido e, portanto, o primeiro e o segundo campos do primeiro arquivo serão salvos no array a
. Então, quando o segundo arquivo estiver sendo processado, imprimiremos suas linhas somente se o primeiro e o terceiro campo estiverem presentes em a
, portanto, somente se estiverem presentes no primeiro arquivo.