Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用unix环境删除两个文本文件之间的常见事件?_Unix_Ubuntu_Text_Grep_Diff - Fatal编程技术网

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

如何使用unix环境删除两个文本文件之间的常见事件?,unix,ubuntu,text,grep,diff,Unix,Ubuntu,Text,Grep,Diff,好吧,我还在学习命令行的东西,比如grep和diff,以及它们在我的项目范围内的使用,但是我似乎不知道如何解决这个问题 我有两个文件,每个文件包含数百个20个字符长的字符串。让我们调用文件A和B。我想搜索A,并使用B中的值作为键,找到A中出现但B中没有的唯一字符串项(这里有重复项,因此键是唯一的) 有什么想法吗 此外,我并不反对自己寻找答案,但我对不同的命令行脚本及其功能没有足够的了解,因此无法真正开始考虑如何将它们结合使用。查找命令(POSIX )这样做。另请参见。有两种方法可以做到这一点。使

好吧,我还在学习命令行的东西,比如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
二进制文件的替代名称。