比较两个文件之间的第 2 列,并打印与所有其他列的输出

Compare column 2 between two files and print the output with all other columns

我想根据第 2 列比较两个文件并打印输出中的所有其他列。

文件 1:

p1 p2 rg se p
F Fht 0.3 0.01 0.05
F Tom 0.01 0.004 0.34

文件 2:

p1 p2 rg se p
M Fht 0.2 0.02 0.06
M Ram 0.03 0.004 0.32

期望的输出:

p1 p2 rg se p p1 p2 rg se p
M Fht 0.2 0.02 0.06 F Fht 0.3 0.01 0.05

我想出了如何打印出差异,而不是公共列。

awk 'NR==FNR{++a[];next} !( in a)' file1 file2

您可以使用这个 awk:

awk 'NR == FNR {map[] = [=10=]; next}  in map {print [=10=], map[]}' f1 f2 | column -t

p1  p2   rg   se    p     p1  p2   rg   se    p
M   Fht  0.2  0.02  0.06  F   Fht  0.3  0.01  0.05

我在这里使用 column -t 进行表格输出。