比较两个文件之间的第 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
进行表格输出。
我想根据第 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
进行表格输出。