我正在使用 FreeBSD grep 版本 2.5.1,并且希望能够让 grep 从 stdin 读取模式。我使用过的其他版本的 grep 允许指定-
启用此功能。但是,我的版本无法识别此选项。是否有我在“手册页”中错过的替代选项,或者 FreeBSD grep 2.5.1 不支持这种功能?
答案1
我怀疑grep
你所说的“其他版本”是指GNUgrep
并正在考虑其-f
选项,该选项允许-
争论使其按照您所说的方式运行。
BSDgrep
确实支持-f
,但它需要一个实际的文件作为参数。它确实不会-
作为一个论据。
一切并没有失去。您仍然可以grep
通过命令替换将模式传递给:
$ grep `my-pattern-producing-command` some-files*
或者,如果模式位于文件中:
$ grep `head -1 my-pattern-file.txt` some-files*
或者,只需安装 GNU grep
:
$ cd /usr/ports/textproc/gnugrep
$ sudo make install clean
顺便说一下,SysV根本grep
不支持-f
,所以这是谨慎依赖它的另一个原因。也就是说,Solaris 现在grep
默认提供 GNU。实际上,您必须不遗余力地grep
在 Solaris 上使用 SysV。