性能修复:join-t,-j99 file2 file1 | awk-F,-v OFS=,'$3==$6&&$4==$8{打印$2、$3、$4、$5、$7、$9}';
文件1 文件2 输出:性能修复:join-t,-j99 file2 file1 | awk-F,-v OFS=,'$3==$6&&$4==$8{打印$2、$3、$4、$5、$7、$9}';,join,awk,Join,Awk,文件1 文件2 输出: 2017,111,560,0.0537 2018,111,560,0.0296 2019,111,560,0.0624 对于文件1,我有31000行 对于文件2,我有130万行 处理文件需要很长时间。 此命令正在unix中运行 有人能帮忙吗?提前谢谢你你可以试试这个 2017,111,560,0.0537,222,0.7 2017,111,560,0.0537,333,0.2 2017,111,560,0.0537,444,0.1 2018,111,560,0.0296
2017,111,560,0.0537
2018,111,560,0.0296
2019,111,560,0.0624
对于文件1,我有31000行
对于文件2,我有130万行
处理文件需要很长时间。
此命令正在unix中运行
有人能帮忙吗?提前谢谢你你可以试试这个
2017,111,560,0.0537,222,0.7
2017,111,560,0.0537,333,0.2
2017,111,560,0.0537,444,0.1
2018,111,560,0.0296,222,0.7
2018,111,560,0.0296,333,0.2
2018,111,560,0.0296,444,0.1
2019,111,560,0.0624,222,0.7
2019,111,560,0.0624,333,0.2
2019,111,560,0.0624,444,0.1
结果是一样的,但应该更快。另一个
awk/join
join -t, -1 2 -2 1 file2 file1 | awk -F, -v OFS=, '{print $2, $1, $3, $4, $5, $7}'
$join-t,带GNU join:join-t,-12-21 file2 file1-o 1.1,1.2,2.3,1.4,2.2,2.4
表示文件1中的第2列和文件2中的第1列将确定联接
join -t, -1 2 -2 1 file2 file1 | awk -F, -v OFS=, '{print $2, $1, $3, $4, $5, $7}'
$ join -t, <(awk -F, '{print $2"_"$3 FS $0}' f2 | sort) \
<(awk -F, '{print $1"_"$3 FS $2 FS $4}' f1 | sort) | cut -d, -f2-
2017,111,560,0.0537,222,0.7
2017,111,560,0.0537,333,0.2
2017,111,560,0.0537,444,0.1
2018,111,560,0.0296,222,0.7
2018,111,560,0.0296,333,0.2
2018,111,560,0.0296,444,0.1
2019,111,560,0.0624,222,0.7
2019,111,560,0.0624,333,0.2
2019,111,560,0.0624,444,0.1