如何使用unix环境删除2个文本文件之间的常见事件?

时间:2014-01-22 20:55:38

标签: unix ubuntu text grep diff

好的,所以我还在学习命令行之类的东西,比如grep和diff以及它们在我的项目范围内的用途,但我似乎无法解决如何处理这个问题。

所以我有2个文件,每个文件包含数百个20个字符的长字符串。让我们调用文件A和B.我想通过A搜索,并使用B中的值作为键,找到A中但不在B中的UNIQUE字符串条目(这里有重复的唯一键是关键)

任何想法?

此外,我并不反对自己找到答案,但我对各种命令行脚本及其功能的理解还不足以真正开始考虑如何一起使用它们。

2 个答案:

答案 0 :(得分:1)

查找comm命令(POSIX comm ) 去做这个。另请参阅Unix command to find lines common in two files

答案 1 :(得分:1)

有两种方法可以做到这一点。使用commgrepsortuniq

comm

comm afile bfile

comm比较文件并输出3列,仅afile中的行,bfile中的行和共同的行。 -1-3开关告诉comm不打印这些列。

grep sort uniq

grep -F -v -file bfile afile | sort | uniq

或只是

grep -F -v -file bfile afile | sort -u

如果您的sort处理-u选项。

(注意:如果你的系统有命令fgrep,则命令等同于grep -F。)