微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我怎样才能在一个循环grep?

我有一个文件包含单独的行文本。

text1 text2 text3 textN

我有一个很多文件的目录。 我想要grep这个特定目录中的每一行。 什么是一个简单的方法来做到这一点?

Nohup:不能从控制台分离

如何使用find复制和删除扩展保持相同的子目录结构

试图运行一个bash脚本来源于另一个脚本运行的源代码

如果从shell脚本执行,cp命令将不会运行

CodeDeploy PM2命令未find

没有必要循环,你可以使用grep和-f选项从文件获取模式:

grep -f pattern_file files*

从man grep :

-f文件, – 文件=文件

从FILE获取模式,每行一个。 空文件包含零模式,因此不匹配任何内容。 (-f由POSIX指定)。

测试

$ cat a1 hello how are you? $ cat a2 bye hello $ cat pattern hello bye $ grep -f pattern a* a1:hello a2:bye a2:hello

你也可以使用标准的bash循环:

for i in text*; do grep "pattern" $i; done

或没有循环更好的选择:

grep "pattern" text*

如果你在*之后按tab,那么shell会将它扩展到满足条件的文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐