2013-02-11 127 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