首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果grep不匹配,则打印输入搜索字符串

如果grep不匹配,则打印输入搜索字符串
EN

Stack Overflow用户
提问于 2021-02-27 04:00:02
回答 3查看 121关注 0票数 3

我有file1

代码语言:javascript
运行
复制
BOB
JOHN
SALLY

我有file2

代码语言:javascript
运行
复制
There was a boy called JOHN and he was playing with FRED while
JILL went off to find a bucket of water from TOM but she
fell down the hill.

我想遍历file1单词,并在file2中搜索这些单词。

我想打印在file2中找不到的单词。

所以输出将是

代码语言:javascript
运行
复制
BOB
SALLY

我想如果grep失败了,我想打印grep正在搜索的字符串。

我从这里开始:

代码语言:javascript
运行
复制
grep -o -f file1 file2 

但当然,这回

代码语言:javascript
运行
复制
JOHN

我怎样才能得到不匹配的原始搜索字符串来代替打印呢?

EN

Stack Overflow用户

回答已采纳

发布于 2021-02-27 06:30:02

以下是完成此操作的grep one衬垫:

代码语言:javascript
运行
复制
grep -vxFf <(tr '[[:blank:]]' '\n' < file2) file1

BOB
SALLY

首先使用tr将空格/制表符转换为换行符,然后使用grep -vxFffile1中获取不匹配的单词。

或者正如大卫在下面的评论中所建议的那样:

代码语言:javascript
运行
复制
grep -vxFf <(printf '%s\n' $(<file2)) file1
票数 7
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66395469

复制
相关文章

相似问题

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