我的文件:
file1.txt
=========
key1
key1
key1
key1
key2
key2
key3
key3
key3
key4
key4
file2.txt
=========
key1 22
key2 23
key3 24
Expected Output :
==================
key1 22
key1 22
key1 22
key1 22
key2 23
key2 23
key3 24
key3 24
key3 24
我发现的所有解决方案都不重复匹配字符串。
awk '{a[$1]=a[$1]" "$2} END{for(i in a)print i, a[i]}'
join -a 1
在这种方法中需要修改什么才能产生左外连接?
答案1
Awk
解决方案:
awk 'NR==FNR{ a[$1]=$2; next }$1 in a{ $2=a[$1]; print }' file2.txt file1.txt
输出:
key1 22
key1 22
key1 22
key1 22
key2 23
key2 23
key3 24
key3 24
key3 24
或者简单地与join
命令:
join -o1.1,2.2 file1.txt file2.txt