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

时间:2017-03-25 21:23:05

标签: bash join grep

我有两个文件:

abc
ghi

和第二个(又名数据库文件)

abc   123
def   456
ghi   789

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

abc   123
ghi   789
从逻辑上讲,我理解我必须做的事情,但是我在bash中缺少命令......

我的尝试是将join-1一起使用,但我不明白如何实现它......

2 个答案:

答案 0 :(得分:1)

join出了什么问题?

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

然后,如果你想将它存储在某处,只需重定向stdout。

答案 1 :(得分:0)

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

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