如何使grep解释忽略所有特殊字符的搜索表达式

时间:2014-06-10 15:53:46

标签: regex search grep

我想搜索一个html字符串,其中包含由grep解释为特殊字符的字符。是否有一个标志或命令会告诉grep将搜索字符串中的所有字符解释为文字字符,而不是特殊字符?

完美世界:

grep --ignorespecial '<a href="/abc/def" class="foo.bar"/>'

1 个答案:

答案 0 :(得分:2)

是的!使用grep -F

来自man grep

  

-F , - 固定字符串

     

将PATTERN解释为固定字符串列表,以换行符分隔,   其中任何一个都要匹配。 (-F由POSIX指定。)

测试

$ cat a
hello
<a href="/abc/def" class="foo.bar"/>my href</a>

<a href="/abc/def/ghi" class="foo.bar"/>

$ grep -F '<a href="/abc/def" class="foo.bar"/>' a
<a href="/abc/def" class="foo.bar"/>my href</a>

或者使用更多bash代码:

$ cat a
hello
<a href="/abc/def" class="foo.bar"/>my href</a>

This is/ a $line with some ^codes * yeah

$ grep 'This is/ a $line with some ^codes * yeah' a   # no -F, no matches
$

$ grep -F 'This is/ a $line with some ^codes * yeah' a # -F, matches
This is/ a $line with some ^codes * yeah