file1 :
HOUSAM1189870 3 0.00 0 -2450.00 11
HOUSAM1213135 3 0.00 0 -2620.00 2
HOCANM245675 3 0.00 0 0.00 0
HOUSAM1239242 3 0.00 0 -3113.00 8
file2 :
AY840F3001138842 20050301
AY840F3001140253 20060101
HOCANM245675 34409887
HOUSAM1239242 34444444
我想根据文件 1 和文件 2 第一列的公共行来连接它们。因此输出应该是:
file3:
HOCANM245675 3 0.00 0 0.00 0 34409887
HOUSAM1239242 3 0.00 0 -3113.00 8 34444444
请问有什么建议吗?
答案1
join
(注意:这个答案是在用命令和错误消息更新问题之前写的)
该命令称为join
.
从手册页:
join - 在公共字段上连接两个文件的行
由于您的输入文件未排序,因此您需要先对它们进行排序
join <(sort file1) <(sort file2)
这些<(...)
东西被称为流程替代并且受到 bash 和其他一些 shell 的支持。如果您的 shell 不支持进程替换,那么您必须使用中间文件。
join
是 gnu coreutils 的一部分,因此应该安装在最常见的 gnu/linux 系统上。