linux - 如何找到两个文本文件之间的相同部分?

标签 linux bash compare

这里有两个文本文件,A 和 B 都包含多个单词项,用换行符或空格符分隔。 现在我想比较A和B,找到两个文件中相同的项目,然后从A中删除它们, 在 bash 中。有什么好主意吗?

最佳答案

阿尔夫的答案看起来是正确的。但是,如果您不关心输出文件中的单词分隔符,那么这可能是优化的解决方案:

grep -w -v -f <(sed 's/[ \n\t]\+/\n/g' A) <(sed '$s/[ \n\t]\+/\n/g' B)

如果两个文件中的数据已排序/顺序相同,那么您还可以使用comm

comm -13 <(sed 's/[ \n\t]\+/\n/g' A) <(sed 's/[ \n\t]\+/\n/g' B)

关于linux - 如何找到两个文本文件之间的相同部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19637291/

相关文章:

c++ - Cuda 内核中值滤波器中的段错误

linux - shell 中的整数加法

mysql - 通过 bash 脚本导入 SQL 转储

SQL从行数据而不是列数据中选择最小值

c# - Linq where 子句只比较没有时间值的日期值

linux - 将文本输出存储在变量中 (bash)

java - WrapperBeanGenerator 错误 : Not creating ASM Type for type

c# - 在字典中查找重复值并打印重复元素的键

linux - Jenkins/Hudson CI Linux RH 安装的最低要求

string - 使用字符作为 bash 中的分隔符获取最后一个字符串