2013-02-11 59 views
1

我試圖找到/usr/dict/words中的每個字,它們的字符與我的名字相匹配。我認爲這會工作:Grep不能與錨定標記一起工作

cat /usr/dict/words | grep "^[mason]\+$" 

但它不打印任何東西。

話雖這麼說,當我運行:

cat /usr/dict/words | grep -v [A-Zbcdefghijlkpqrtuvwxyz] 

我得到正確的輸出。我很困惑。這是怎麼回事?

+0

你希望他們匹配*僅*那些你的名字嗎? – 2013-02-12 00:00:10

+0

您的示例適用於我的操作系統x 10.6和centos – Eric 2013-02-12 00:13:56

回答

2

鑑於你沒有看/usr/share/dict/words,我假設你不在linux上。鑑於+grep的非標準擴展,我猜想您使用的grep不能識別+。嘗試:

grep '^[mason][mason]*$' /usr/dict/words 

grep -E '^[mason]+$' /usr/dict/words 
+1

或者僅僅是''^ *'' - 該文件中可能沒有空白行。 – 2013-02-12 00:05:07

+0

不幸的是,這些建議都無效。我在Mac上運行它,但我只是在Linux delhi 3.2.0-35-generic上嘗試了所有這些東西,並且它在那裏也不工作 – Mason 2013-02-12 00:08:38