我試圖grep的一個文件...... 文件我有5個實體的grep不能按預期工作
vivek
vivek.a
a.vivek
vivek_a
a_vivek
當我用grep爲grep -iw vivek
文件名,那麼就應該給我 vivek只能給它
vivek
vivek.a
a.vivek
我試圖grep的一個文件...... 文件我有5個實體的grep不能按預期工作
vivek
vivek.a
a.vivek
vivek_a
a_vivek
當我用grep爲grep -iw vivek
文件名,那麼就應該給我 vivek只能給它
vivek
vivek.a
a.vivek
一組帶字母,下劃線和數字的字符被視爲一個單詞。所以除此之外的其他任何字符都表示字邊界。因此,在「vivek.a」這一行中,點表示單詞的結尾,並且之前的所有字符形成單詞「vivek」,與使用選項-w嘗試匹配的單詞相匹配。
因此,一種方式是這樣定義自己的單詞界限:
$ grep -i -e "[[:space:]]vivek[[:space:]]" -e "^vivek[[:space:]]" -e "[[:space:]]vivek$" -e "^vivek$" file
對我來說很好。 .
是一個非單詞字符。如果你的意思是別的,那麼你應該使用更具體的正則表達式,而不是使用-w
。
所以沒有選項,通過它我可以diff的黑/白維韋克第二vivek.a – 2011-04-21 05:21:51
都能跟得上。如果你想有一個錨定正則表達式,然後錨定你的正則表達式。 – 2011-04-21 05:23:28
它確實是因爲字(這是w
選項選擇什麼)的定義,允許.
分開的話,雖然_
被認爲是一個字的一部分。這個定義對編程語言很有用,但對英文文本不那麼有用。
其實,'_' *被認爲是一個單詞字符。 – 2011-04-21 05:24:24
但在這裏它__選項很好,唯一的問題是。 – 2011-04-21 05:26:28
Sheesh,對不起。我糾正了我的答案。 – wallyk 2011-04-21 06:34:13
hi sahaj這個命令對於 – 2011-04-25 07:11:15
工作正常hi sahaj這個命令對於vivek,vivek_a,a_vivek工作正常,但對於vivek.a和a.vivek,它同時給出了這兩個命令。和_值。我剛剛將vivek替換爲vivek.a vivek_a – 2011-04-25 09:33:32