![如何将文字值(任意值)添加到 grep -Ff](https://linux22.com/image/227303/%E5%A6%82%E4%BD%95%E5%B0%86%E6%96%87%E5%AD%97%E5%80%BC%EF%BC%88%E4%BB%BB%E6%84%8F%E5%80%BC%EF%BC%89%E6%B7%BB%E5%8A%A0%E5%88%B0%20grep%20-Ff.png)
我使用此代码来过滤find
命令的结果:
grep -Ff /path/to/file
现在,我想向该grep
命令添加任意值。
换句话说,我想说,嘿 grep,使用固定模式,并从该文件加载您的模式,并且这是该文件中没有的静态模式。
我怎样才能做到这一点?
PS背景: 我问我可以根据另一个文件的行过滤掉查找结果吗?,现在我想根据文件中的条目Dependencies
或者它们是否为 或 来Infra
过滤查找结果Base
。但我无法将Infra
和添加Base
到Dependencies
文件中。该文件仅适用于模块。
答案1
使用的模式是从 指定的所有文件以及 指定的所有单独模式grep
中读取的模式的集合。-f
-e
如果您想pattern
向命令添加单个模式:
grep -F -f /path/to/file -e 'pattern'
-f
和选项都-e
可以重复。
答案2
您可以使用子 shell 将输入模式(集合)传递给 grep。例如,如果您的模式文件包含以下行:
$ cat pattern.txt
foo
bar
并且您还想同时搜索 baz(您的固定模式),然后尝试:
$ grep -f <(echo baz; cat pattern.txt) infile.txt