首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Unix命令来查找字符串集交叉点或异常值?

Unix命令来查找字符串集交叉点或异常值?
EN

Stack Overflow用户
提问于 2009-06-19 03:37:35
回答 6查看 15.9K关注 0票数 21

是否有一个UNIX命令可与

代码语言:javascript
复制
sort | uniq

以查找字符串集交叉点或“异常值”。

一个示例应用程序:我有一个html模板列表,其中一些有{% load i18n %}字符串,其他没有。

编辑: grep -L解决了上述问题。

这样如何:

file1:

代码语言:javascript
复制
mom
dad
bob

file2:

代码语言:javascript
复制
dad

%intersect file1 file2

代码语言:javascript
复制
dad

%left-唯一的file1 file2

代码语言:javascript
复制
mom
bob
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-06-19 05:07:16

看起来grep -L解决了海报的真正问题,但是对于实际提出的问题,寻找两组字符串的交集,您可能需要查看"comm“命令。例如,如果file1file2都包含一个已排序的单词列表,每行一个单词,则

代码语言:javascript
复制
$ comm -12 file1 file2

将生成两个文件通用的单词。更一般的情况是,给定排序后的输入文件file1file2,命令

代码语言:javascript
复制
$ comm file1 file2

生成三列输出

  1. lines only in file1
  2. lines only in file2
  3. lines in file1和file2

您可以使用-N选项在输出中隐藏列N。因此,上面的命令comm -12 file1 file2取消了第1列和第2列,只保留了这两个文件共有的单词。

票数 39
EN

Stack Overflow用户

发布于 2009-06-19 04:27:17

交集:

代码语言:javascript
复制
# sort file1 file2 | uniq -d
dad

左唯一:

代码语言:javascript
复制
# sort file1 file2 | uniq -u
bob
mom
票数 9
EN

Stack Overflow用户

发布于 2012-08-20 13:14:00

来自http://www.commandlinefu.com/commands/view/5710/intersection-between-two-files

两个(未排序)文件之间的交集:

代码语言:javascript
复制
grep -Fx -f file1 file2

不在file1中的file2中的行:

代码语言:javascript
复制
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独有的行。
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1016244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档