grep手册中-F选项的含义是什么

时间:2016-05-08 14:31:24

标签: regex linux grep command-line-interface

-Fgrep的一个选项,来自下面的手册:

  

将模式解释为固定字符串列表,以。分隔   换行符,其中任何一个都要匹配

我的问题是

  1. 如何分隔多个固定字符串,换行符是什么,\n还是\
  2. 如果我想查找以字符grep -F a\nh filea开头的行,则h似乎无效。
  3. 提前致谢!

2 个答案:

答案 0 :(得分:2)

grep中,-F将导致模式字面匹配,即对模式没有进行正则表达式解释。

可以通过\n输入多个模式,即换行符分离。

默认情况下,并非所有shell都会将\n转换为换行符,在这种情况下您可以使用$'a\nh'

示例:

$ echo $'foo\nf.o\nba.r\nbaar\n'
foo
f.o
ba.r
baar

$ grep -F $'f.o\nba.r' <<<$'foo\nf.o\nba.r\nbaar\n'
f.o
ba.r

答案 1 :(得分:0)

默认情况下,模式是基本正则表达式(BRE)模式,但对于-F,它将被解释为没有元字符的文字字符串。

您还可以使用-E启用扩展正则表达式(ERE)。

% grep -F '..' <<< $'hello\nworld\n...'
...
% grep '..' <<< $'hello\nworld\n...'
hello
world
...