如何合并和对齐2个单独文件的内容

时间:2017-10-05 15:02:16

标签: bash awk sed

我有2个单独的文件,每个文件包含2列。每个文件中的一个列将具有一些匹配的数据,并且每个文件具有该文件唯一的第二列数据。此外,每个文件中的匹配列可能都不完整示例:

档案1

Shelf1   Apples
Shelf2   Pears
Shelf3   Oranges
Shelf4   Plums

文件2

Shelf1   Restock
Shelf2   Out_of_Season
Shelf4   Full

期望的输出:

Shelf1   Apples    Restock
Shelf2   Pears     Out_of_Season
Shelf3   Oranges
Shelf4   Plums     Full

注意Shelf3在文件2中没有条目,期望该文本的输出在所需输出中对于该列是空白的。在bash和一些阵列中玩排序和合并,但是没有多少运气。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

对于不匹配的字段,您可以使用join -a选项,阅读man join

kent$  join -a1 file1 file2
Shelf1 Apples Restock
Shelf2 Pears Out_of_Season
Shelf3 Oranges
Shelf4 Plums Full

如果输出格式(对齐)很重要,请将连接输出传递给column -t,如:

join -a1 f1 f2|column -t