如何使用unix环境删除两个文本文件之间的常见事件?
好吧,我还在学习命令行的东西,比如grep和diff,以及它们在我的项目范围内的使用,但是我似乎不知道如何解决这个问题 我有两个文件,每个文件包含数百个20个字符长的字符串。让我们调用文件A和B。我想搜索A,并使用B中的值作为键,找到A中出现但B中没有的唯一字符串项(这里有重复项,因此键是唯一的) 有什么想法吗 此外,我并不反对自己寻找答案,但我对不同的命令行脚本及其功能没有足够的了解,因此无法真正开始考虑如何将它们结合使用。查找命令(POSIX如何使用unix环境删除两个文本文件之间的常见事件?,unix,ubuntu,text,grep,diff,Unix,Ubuntu,Text,Grep,Diff,好吧,我还在学习命令行的东西,比如grep和diff,以及它们在我的项目范围内的使用,但是我似乎不知道如何解决这个问题 我有两个文件,每个文件包含数百个20个字符长的字符串。让我们调用文件A和B。我想搜索A,并使用B中的值作为键,找到A中出现但B中没有的唯一字符串项(这里有重复项,因此键是唯一的) 有什么想法吗 此外,我并不反对自己寻找答案,但我对不同的命令行脚本及其功能没有足够的了解,因此无法真正开始考虑如何将它们结合使用。查找命令(POSIX )这样做。另请参见。有两种方法可以做到这一点。使
)这样做。另请参见。有两种方法可以做到这一点。使用
comm
或grep
、sort
和uniq
comm
通信文件bfile
comm
比较文件并输出3列,仅在a文件
中有行,仅在b文件
中有行,以及共有行。-1
,-3
开关告诉comm
不要打印这些列
grep
sort
uniq
grep-F-v-file bfile afile | sort | uniq
或者只是
grep-F-v-file bfile afile | sort-u
如果您的排序
处理-u
选项
(注意:如果您的系统有命令
fgrep
,则该命令相当于grep-F
)可能与Verdamelt重复,谢谢您的帮助!我喜欢你的回答,因为它向我展示了grep的正确用法,还引入了sort,这是我不知道我能做的。或者用grep-F
代替fgrep
。POSIX的官方标准不再包括egrep
(grep-E
)或fgrep
(grep-F
)——但现实世界中的实现仍然包括原始名称,可能作为主grep
二进制文件的替代名称。