【问题标题】:How to align rows from two different files by similitude? [duplicate]如何通过相似度对齐来自两个不同文件的行? [复制]
【发布时间】: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 命令吗?

标签: bash unix


【解决方案1】:

尝试使用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

您的文件需要进行排序才能正常工作。它们不是,所以我必须为你整理它们。

【讨论】:

    【解决方案2】:

    如果两个文件有完全相同的键(和行数),你可以使用paste:

    paste -d\  <(sort -k2 file1) <(sort file2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-17
      • 2020-04-27
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 1970-01-01
      相关资源
      最近更新 更多