Вот мой рецепт:
awk 'key[$1]; FNR==NR {key[$1]=1}' file2 file1
Я предполагаю, что оба списка отсортированы по ключу (первый столбец), и каждый ключ появляется только один раз в файле.Первый шаблон сокращен до:
key[$1] != 0
В этом случае действие по умолчанию - печать всей строки.Этот шаблон неявно работает для второго файла (file1) только потому, что для первого файла ключ не был помечен.Во втором шаблоне:
FNR==NR {key[$1]=1}
FNR == NR означает, что мы обрабатываем первый файл (в данном случае file2).В этом случае мы помечаем ключ для дальнейшего использования.