是否有一个UNIX命令可与
sort | uniq
以查找字符串集交叉点或“异常值”。
一个示例应用程序:我有一个html模板列表,其中一些有{% load i18n %}字符串,其他没有。
编辑: grep -L解决了上述问题。
这样如何:
file1:
mom
dad
bob
file2:
dad
%intersect file1 file2
dad
%left-唯一的file1 file2
mom
bob
发布于 2009-06-19 05:07:16
看起来grep -L
解决了海报的真正问题,但是对于实际提出的问题,寻找两组字符串的交集,您可能需要查看"comm“命令。例如,如果file1
和file2
都包含一个已排序的单词列表,每行一个单词,则
$ comm -12 file1 file2
将生成两个文件通用的单词。更一般的情况是,给定排序后的输入文件file1
和file2
,命令
$ comm file1 file2
生成三列输出
您可以使用-N
选项在输出中隐藏列N
。因此,上面的命令comm -12 file1 file2
取消了第1列和第2列,只保留了这两个文件共有的单词。
发布于 2009-06-19 04:27:17
交集:
# sort file1 file2 | uniq -d
dad
左唯一:
# sort file1 file2 | uniq -u
bob
mom
发布于 2012-08-20 13:14:00
来自http://www.commandlinefu.com/commands/view/5710/intersection-between-two-files
两个(未排序)文件之间的交集:
grep -Fx -f file1 file2
不在file1中的file2中的行:
grep -Fxv -f file1 file2
解释:
-f
选项告诉grep从文件中读取要查找的模式。这意味着它为file1中的每一行执行file2搜索。-F
选项告诉grep将搜索项视为固定字符串,而不是模式,这样a.c
将只匹配a.c
而不是abc
,-x
选项将告诉grep执行整行搜索,因此file1中的"foo“不会与file2中的"foobar”匹配。-v
选项告诉grep只显示不匹配的行,为您提供file2独有的行。https://stackoverflow.com/questions/1016244
复制相似问题