首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bash/awk:当图案没有出现时,打印“不存在”一次,而不是每行。

Bash/awk:当图案没有出现时,打印“不存在”一次,而不是每行。
EN

Stack Overflow用户
提问于 2016-03-01 15:48:07
回答 1查看 417关注 0票数 0

我正在我的文件的一个字段中搜索一个有几行的模式。如果存在模式,我希望输出该行。但是,如果模式根本不存在,我想输出类似“缺失”之类的内容。

代码语言:javascript
运行
复制
awk '{if($2=="123456"){print $0} else {print "not present"} }' file.txt

(由于逐行输出,这不起作用)

我的问题是这里的逐行输出。每行有一个输出,但我想要与模式匹配的行或术语“缺失”(只有一次)。

我很感激每一种帮助!我尝试了几种方法,包括grep,如果其他,循环,但没有任何工作,我想。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-01 16:10:19

字里行间我想你想要这样的东西:

代码语言:javascript
运行
复制
awk '$2 == "123456" { print; f = 1 } END { if (!f) print "missing" }' file

这将在第二个字段匹配并设置标志f时打印行。处理完文件后,如果仍然未设置标志,则打印消息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35727302

复制
相关文章

相似问题

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