unix - 从 unix 命令行连接两个文件的最简单方法,为丢失的键插入零个条目

标签 unix join

我正在尝试加入两个文件,每个文件都包含 <key> <count> 形式的行.每个文件都包含一些从另一个文件中丢失的行,我希望为所有这些值插入零而不是省略这些行(我已经看到了 -a,但这不是我正在寻找的)。有没有简单的方法来实现这一点?

这是一些示例输入:

一个.txt

apple 5
banana 7

b.txt
apple 6
cherry 4

预期输出:
apple 5 6
banana 7 0
cherry 0 4

最佳答案

join -o 0,1.2,2.2 -e 0 -a1 -a2 a.txt b.txt
  • -o 0,1.2,2.2 → 输出连接字段,然后是第一个文件的第二个字段,然后是第二个文件的第二个字段。
  • -e 0 → 输出 0在空的输入字段上。
  • -a1 -a2 → 显示文件 1 和文件 2 中的所有值。
  • 关于unix - 从 unix 命令行连接两个文件的最简单方法,为丢失的键插入零个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7895469/

    相关文章:

    UNIX命令递归地改变目录的权限?

    MySQL:当连接表有多个结果时,为什么此选择查询找不到行?

    mysql - 连接后显示表的所有行

    SQL 全外连接重复问题

    unix - awk 程序文件执行

    linux - 用于从另一个文件的 block 组成文件的 shell 命令

    shell - 如何将文本发送到 shell 脚本中的进程?

    linux - shell脚本中的新行

    mysql - 我该如何优化这个 MySQL 查询?我应该使用联接吗?

    MySQL - 对连接表进行 AND 查询