在Bash中实现TSV文件的Full Outer Join(全外连接)
实现TSV文件的全外连接(Full Outer Join)
需求
我有两个TSV文件:
abbrvtd.tsv:存储机场代码与年份的组合列表landings.tsv:存储不同机型的日均起降数据
需要生成第三个文件,实现类似SQL的**全外连接(Full Outer Join)**效果——无论两个文件的数据是否匹配都进行合并,未匹配的单元格留空。
尝试的方法
我试过多种awk写法,目前使用join命令:
join -a 1 -a 2 -e NULL -t$" " -1 1 -2 1 -o 2.1,2.2,2.3,2.4,2.5,2.6,2.7 abbrvtd.tsv landings.tsv
但执行后返回的结果和landings.tsv完全一致,达不到预期的全外连接效果。
问题已解决
@EdMorton提供的方案可以生成符合要求的全外连接输出。
内容的提问来源于stack exchange,提问作者coding stuff
相关产品推荐
相关产品推荐

