当前位置: 技术问答>linux和unix
join命令连接2个文件的多个域
来源: 互联网 发布时间:2017-02-08
本文导语: 有几个文件要做连接,用到了join命令,但是join命令只能指定文件中某个域进行连接 如果要指定多个域连接怎么办? 比如:cat test1: 1 a 11 1 b 22 2 a 33 2 b 44 cat test2 : 1 a x 1 b y 1 c z 2 a x ...
有几个文件要做连接,用到了join命令,但是join命令只能指定文件中某个域进行连接
如果要指定多个域连接怎么办?
比如:cat test1:
1 a 11
1 b 22
2 a 33
2 b 44
cat test2 :
1 a x
1 b y
1 c z
2 a x
2 b y
2 c z
指定第1,2个域连接后:
1 a 11 x
1 b 22 y
2 a 33 x
2 b 44 y
test1 test2数据量很大,大约上亿,怎样处理效率最高?join?awk?
如果要指定多个域连接怎么办?
比如:cat test1:
1 a 11
1 b 22
2 a 33
2 b 44
cat test2 :
1 a x
1 b y
1 c z
2 a x
2 b y
2 c z
指定第1,2个域连接后:
1 a 11 x
1 b 22 y
2 a 33 x
2 b 44 y
test1 test2数据量很大,大约上亿,怎样处理效率最高?join?awk?
|
把下面的文本保存为 j.awk
BEGIN{i=0;j=0}
NR==FNR{a[i]=$1;b[i]=$2;c[i]=$0;i++}
NR!=FNR{x[j]=$1;y[j]=$2;z[j]=$3;j++}
END {
for(k=0;k