我有两个不同的文件,其中两个数据的某些行测量相同的东西。我想要一个合并的输出,这样 File1 的行将成为输出行,其中行测量相同的东西(file1 的第二行和 file2 的第一行测量相同的东西。我希望当 column1 和 column2 时文件 1 的第一行文件的相似性。)
... 文件1:
1257, OBM , 47, 106, 1330
1257, IRK , 52, 104, 467
....
文件2:
1257, IRK , 50, 100, 400
1000, CTK , 47, 106, 1330
....
输出:
1257, OBM , 47, 106, 1330
1257, IRK , 52, 104, 467
1000, CTK , 47, 106, 1330
....
答案1
使用awk
:
awk -F',' '!seen[$1,$2]++' file1 file2
解释:
- 一开始,键为 fields 的数组项
$1,$2
未分配,因此为 false。 - 如果为 false,
!seen
则为 true,因此我们将其递增(使其为 true)并执行默认操作,即print
。 - 如果为 true(我们第二次看到相同的字段)
!seen
则为 false,awk
并将跳过该行。