我有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和一些阵列中玩排序和合并,但是没有多少运气。任何帮助将不胜感激。
答案 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