Обязательно сначала поместите файл большего размера, в данном случае это было file2
awk 'FNR==NR{a[$1]=$2;next}(a[$1]){if(a[$1]!=$2)print $1,$2 RS $1,a[$1];else print $1,$2}' OFS='\t' file2 file1
Подтверждение концепции
$ awk 'FNR==NR{a[$1]=$2;next}(a[$1]){if(a[$1]!=$2)print $1,$2 RS $1,a[$1];else print $1,$2}' OFS='\t' file2 file1
user1 1.1.1.1
user1 99.22.54.214
user2 2.2.2.2
user4 4.4.4.4
user4 8.8.8.8
В качестве альтернативы, вы можете использовать это, но это требует двух вызовов awk
и, следовательно, не так быстро по производительности:
awk 'FNR==NR{a[$1]=$2;next}(a[$1]){print $1,$2 RS $1,a[$1]}' OFS='\t' file2 file1 | awk '!a[$0]++'