Grep用于文字字符串

Ben*_*Ben 88 unix grep

我正在使用grep-type工具来搜索纯文字字符串.我正在寻找一行日志文件的出现,作为单独日志文件中一行的一部分.搜索文本可以包含各种正则表达式特殊字符,例如[]().*^$-\.

有没有使用正则表达式的Unix搜索工具,只是搜索字符串的字面值?

Sco*_*ord 119

您可以使用-F选项使用grep.

-F, --fixed-strings       PATTERN is a set of newline-separated fixed strings
Run Code Online (Sandbox Code Playgroud)

  • *我会回答我自己的问题.:)*您只需要使用`-e`选项的重复提供多个固定字符串.像这样:`grep -F -e"fixed1"-e"fixed2"-e"fixed3"-e"fixed4"`.无需换行;) (10认同)
  • 在 Solaris 上不可用。而是使用了`fgrep`。 (3认同)
  • @ADTC我发现我必须使用单引号搜索只包含特殊字符的搜索字符串,否则什么都找不到.所以这并没有返回任何结果:`grep --include =\*.php -FRn -e"$$"`使用单个quoutes给了我想要的结果:`grep --include =\*.php -FRn - e'$$'` (2认同)
  • 你_are_更正@ADTC.`$`和其他一些字符是特殊的,在你按Enter键之后和执行`grep`(或任何命令)之前它们将被bash替换.你可以告诉bash将所有字符(单引号除外)保持不变,将它们包含在单引号中.如果你需要输入一个单引号,就像这样''我'是特别' (2认同)

pax*_*blo 11

那是fgrep或者grep -F哪个不会做正则表达式.fgrep是相同grep -F但我更喜欢不必担心争论,本质上是懒惰的:-)

grep   ->  grep
fgrep  ->  grep -F  (fixed)
egrep  ->  grep -E  (extended)
rgrep  ->  grep -r  (recursive, on platforms that support it).
Run Code Online (Sandbox Code Playgroud)

  • POSIX标准没有规定`egrep`和`fgrep`; `grep -F`和`grep -E` [are](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html) (3认同)