我有两个大文件。
file1 拥有1.6亿行,格式为:id:email
file2 有4500万行,格式为:id:hash
问题是找到所有相同的 id 并将其保存到第三个文件,格式为:email:hash
尝试过类似的事情:
awk -F':' 'NR==FNR{a[$1]=$2;next} {print a[$1]":"$2}' test1.in test2.in > res.in
但它不起作用:(
示例 file1 :
9305718:test00@yahoo.com
59287478:login@hotmail.com
file2的:
21367509:e90100b1b668142ad33e58c17a614696ec04474c
9305718:d63fff1d21e1a04c066824dd2f83f3aeaa0edf6e
期望的结果:
test00@yahoo.com:d63fff1d21e1a04c066824dd2f83f3aeaa0edf6e
答案 0 :(得分:1)
使用GNU join和GNU bash:
join -t : -j 1 <(sort -t : -k1,1 file1) <(sort -t : -k1,1 file2) -o 1.2,2.2
<强>更新强>:
join -t: <(sort file1) <(sort file2) -o 1.2,2.2
答案 1 :(得分:0)
在AWK中(不考虑您可用的资源量):
var json = getFormData( form, true );