0
我在這裏失去了一些東西。如果我有內容的文件:轉義< and >與grep
foo
<foo>
我做grep "\<foo\>" file_name
不應該只匹配第二行?我也匹配第一。
我對grep不太好,所以我可能會搞砸了。
我在這裏失去了一些東西。如果我有內容的文件:轉義< and >與grep
foo
<foo>
我做grep "\<foo\>" file_name
不應該只匹配第二行?我也匹配第一。
我對grep不太好,所以我可能會搞砸了。
逃離他們啓動他們的元字符屬性,並將其轉換字邊界在GNU的grep:
$ grep 'foo' file
foo
<foo>
foobar
$ grep '\<foo\>' file
foo
<foo>
上面的第二個grep的不是找字符串<foo>
,它看起來不開頭的字符串foo
或立即由字組成字符成功。
一般來說,在不知道這意味着什麼的情況下轉義字符並不安全。下面是另一個示例:
$ printf 'aa\na{2}b\n'
aa
a{2}b
$ printf 'aa\na{2}b\n' | grep 'a{2}'
a{2}b
$ printf 'aa\na{2}b\n' | grep 'a\{2\}'
aa
上面\{..\}
被激活他們的元字符性質在作爲正則表達式間隔分隔符。
我不認爲你需要逃避它們。試試這個: grep「」 –
gawi
顯然我是在想這個。好。那麼爲什麼轉義它們讓grep在文本中忽略它們呢? – user3804799