我有以下我需要的场景。
我有两个非常大的文件,它们的行数以千万计,而没有。每个文件中的行数相同。我认为 awk 是一个有用的工具,我可以使用它加入两个文件,其中包含一些条件。请建议。
File1
# header1, header2, header3, header4
1,2,3,4
11,12,13,14
21,22,23,24
31,32,33,34
41,42,43,44
File2
a d e f
a f g h
b p q
33 b p q
43 b x y
Final Output
1, 2, 3, 4, a, d, e, f
11, 12, 13, 14, a, f, g, h
21, 22, 23, 24, b, p, q
31, 32, 33, 34, b, p, q
41, 42, 43, 44, b, x, y
file1、file2之间其实是有联系的。从file1的每一行收集很少的header,并基于一些小工具file2生成。所以对于file1中的每一行,file2的同一行中都有一些信息。现在我想加入这两个文件,如下逻辑。
file2 的第一个条目包含 'a'、'b' 或基于此的 file1 的标题 3,如果它包含 'a' 或 'b',那么我们将这些行按“1、2、3、4、a、d , e, f"
如果 file2 的条目有 file1 的 header3,那么我们按原样加入 "31, 32, 33, b, p, q"
所有字段都必须用逗号分隔。并且输出必须转储到其他文件中。
我也可以在 python 中做同样的事情,但是循环处理需要太多时间,因为文件太大,并且涉及很多 python 解释时间。所以我认为 awk 会是更好的工具来完成这样的任务.
请建议。谢谢。