我想搜索一个html字符串,其中包含由grep解释为特殊字符的字符。是否有一个标志或命令会告诉grep将搜索字符串中的所有字符解释为文字字符,而不是特殊字符?
完美世界:
grep --ignorespecial '<a href="/abc/def" class="foo.bar"/>'
答案 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