bash - 如何比较两个txt文件的部分行?

标签 bash

我得到了两个 txt 文件,每个文件的信息都排列在由制表符分隔的几列中。我想要做的是在两个文件中查找这些列之一匹配的行。 --不是整行,只有它们的第一列部分应该相同。我如何在 bash 脚本中执行此操作?

我试过使用 grep -Fwf

这就是文件的样子

aaaa   bbbb
cccc   dddd

aaaa   eeee
ffff   gggg

我想要得到的输出是这样的:

bbbb and eeee match

我真的还没有找到同时进行逐行比较和单词比较的命令。 很抱歉没有提供我自己的任何代码,我是编程新手,到目前为止还想不出任何合理的东西。提前致谢!

最佳答案

你见过加入命令吗?这与 sort 结合可能是您正在寻找的东西。 https://shapeshed.com/unix-join/

例如:

$ cat a
aaaa   bbbb
cccc   dddd
$ cat b
aaaa   eeee
ffff   gggg
$ join a b
aaaa bbbb eeee

如果第一列中的值未排序,则必须先对它们进行排序,否则连接将不起作用。

join <(sort a) <(sort b)

亲切的问候 奥利弗

关于bash - 如何比较两个txt文件的部分行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54485639/

相关文章:

linux - 运行脚本跳过文件

bash - 如何在 shell 脚本中从变量运行命令

linux - 计算目录中每个文件中的 Markdown 链接

regex - 使用 linux shell 对数据进行排序

regex - 从专有名称解析通用名称的正则表达式

java - 查找 hadoop-core-2.7.2.jar 路径

arrays - 从数组的所有元素中删除空格

linux - 从目录层次结构中的文件递归搜索和输出字符串

Bash:在设备上写入然后从中读取

bash - grc.bashrc 没有那个文件或目录