linux - 在 Linux 上合并两个文件,只保留两个文件中出现的行

标签 linux centos

在 Linux 中,如何合并两个文件并只保留两个文件中匹配的行?

每一行由一个换行符(\n)分隔。

到目前为止,我发现要对其进行排序,然后使用comm -12。这是最好的方法吗(假设它是正确的)?

文件A包含

aaa
bbb
ccc
ddd

文件B包含

aaa
ddd
eee

我想要一个新文件来包含

aaa
ddd

最佳答案

假设您的两个输入文件都是 lexicographically sorted , 你确实可以使用 comm :

$ comm -12 fileA fileB > fileC

如果不是这样,你应该 sort首先是你的输入文件:

$ comm -12 <(sort fileA) <(sort fileB) > fileC

关于linux - 在 Linux 上合并两个文件,只保留两个文件中出现的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18301611/

相关文章:

linux - .text 与 .data 需要对齐

linux - 命令 a2ps 和 Cups - 汉字

linux - 在具有相同顶级父目录的文件夹内使用多个 Git 存储库?

linux - 尝试设置数据库集群时无法访问目录 "/usr/local/pgsql/data": Permission denied ,

oracle - 如何在 Oracle 中自动启动监听器

linux - Openstack-架桥

linux - Windows 以外操作系统的开发者工具

linux - 无法在 CentOS 6.7 上更新 nspr 包

linux - shell 中简单 bash 命令的问题

php - 带有 php 的 Docker Centos 无法启动