【发布时间】:2019-09-01 20:07:27
【问题描述】:
我需要帮助来通过第 2 列(文件 1)和第 1 列(文件 2)中的值的相似性来对齐两个文件。
文件 1:
1 d 3
2 e 4
5 o 1
文件 2:
e 6
o 5
d 8
我想得到
1 d 3 d 8
2 e 4 e 6
5 o 1 o 5
【问题讨论】:
-
您查看过
join命令吗?
我需要帮助来通过第 2 列(文件 1)和第 1 列(文件 2)中的值的相似性来对齐两个文件。
文件 1:
1 d 3
2 e 4
5 o 1
文件 2:
e 6
o 5
d 8
我想得到
1 d 3 d 8
2 e 4 e 6
5 o 1 o 5
【问题讨论】:
join 命令吗?
尝试使用join 命令:
join -o "1.1,1.2,1.3,2.1,2.2" -1 2 <(cat file1 | sort) <(cat file2 | sort)
输出:
1 d 3 d 8
2 e 4 e 6
5 o 1 o 5
您的文件需要进行排序才能正常工作。它们不是,所以我必须为你整理它们。
【讨论】:
如果两个文件有完全相同的键(和行数),你可以使用paste:
paste -d\ <(sort -k2 file1) <(sort file2)
【讨论】: