我需要一个python或者甚至是bash解决方案来解决这个问题 我有两个列表(或者说是文本文件):
File1中:
A1 B1
A2 B2
A3 B3
...
文件2:
X1 Y1
X2 Y2
X3 Y3
...
我需要为所有N计算(BN-YN)(AN = XN),使得文件3看起来像:
文件3:
AN(= XN)BN-YN
AM(= XM)BM-YM
...
如果我可以选择A与X的所有交叉元素(和关联元素B),这将很容易,因为X是A的子集。
答案 0 :(得分:1)
与bash相比,awk更适合文本处理任务。这是awk单行的样子:
$ head file{1,2}
==> file1 <==
1 10
3 11
5 12
==> file2 <==
5 5
3 6
$ awk 'NR==FNR{a[$1]=$2;next}$1 in a{print $1,a[$1]-$2}' file1 file2
5 7
3 5
这里需要注意的是,我们会将整个file1
存储在内存中,因此如果file1
非常大,您就不会想要使用此方法。