【发布时间】:2013-03-03 19:46:36
【问题描述】:
我想输出排序后的 file1 中的所有字段,这些字段可以通过 file1 的 field1 和 file2 的 field2 连接。如果 file1 有三个字段,那么我可以执行以下操作:
join -1 $field1 -2 $field2 -o 1.1,1.2,1.3 $file1 $file2
但是,如果 file1 有数百或数千个字段,我该怎么办?我目前的一种解决方法是 Python,另一种方法是对两个包含来自 file1 和 file2 的连接字段值的排序文件执行 comm -12,然后将 file1 与 comm -12 生成的文件连接起来。
这可能是文件1 输入:
1 A
2 B
3 C
还有file2 输入:
3 D
4 E
5 F
我如何获得这个输出(第 2 列中的共享值):
C
不这样做:
join -1 1 -2 1 -o 1.2 $file1 $file2
【问题讨论】:
-
我可以用python写。最现代的unix系统有python解释器。
-
好吧,也许我会坚持我的 Python 解决方案。我只是惊讶于 unix 实用程序连接不允许您从 file1 或 file2 打印所有字段。这似乎是一项非常明显的频繁任务。