Bash 将数据库文件的查询结果打印到一个文件中

Bash 将数据库文件的查询结果打印到一个文件中,bash,join,grep,Bash,Join,Grep,我有两个文件: abc ghi 第二个(aka数据库文件) 如果存在匹配项,我想查询数据库文件,将第二列打印到第一个文件的第二列 所以我的输出是 abc 123 ghi 789 从逻辑上讲,我知道我必须做什么,但我缺少bash中的命令 我的尝试是将join与-1一起使用,但我不知道如何实现它……join在这里有点过分(因为它需要排序),因为file1只有一列。您不能使用grep-f grep -Fwf file1 file2 -F将file1的内容视为字符串,而不是模式 -w查找

我有两个文件:

abc
ghi
第二个(aka数据库文件)

如果存在匹配项,我想查询数据库文件,将第二列打印到第一个文件的第二列 所以我的输出是

abc   123
ghi   789
从逻辑上讲,我知道我必须做什么,但我缺少bash中的命令


我的尝试是将
join
-1
一起使用,但我不知道如何实现它……

join
在这里有点过分(因为它需要排序),因为file1只有一列。您不能使用
grep-f

grep -Fwf file1 file2
  • -F
    将file1的内容视为字符串,而不是模式
  • -w
    查找要匹配的整个单词

    • 加入
      有什么问题

      $ cat 1
      abc
      ghi
      $ cat 2
      abc 123
      def 456
      ghi 789
      $ join 1 2
      abc 123
      ghi 789
      
      然后,如果您想将其存储在某个地方,只需重定向stdout即可

      $ cat 1
      abc
      ghi
      $ cat 2
      abc 123
      def 456
      ghi 789
      $ join 1 2
      abc 123
      ghi 789