我试图找到/usr/dict/words
中的每个字,它们的字符与我的名字相匹配。我认为这会工作:Grep不能与锚定标记一起工作
cat /usr/dict/words | grep "^[mason]\+$"
但它不打印任何东西。
话虽这么说,当我运行:
cat /usr/dict/words | grep -v [A-Zbcdefghijlkpqrtuvwxyz]
我得到正确的输出。我很困惑。这是怎么回事?
我试图找到/usr/dict/words
中的每个字,它们的字符与我的名字相匹配。我认为这会工作:Grep不能与锚定标记一起工作
cat /usr/dict/words | grep "^[mason]\+$"
但它不打印任何东西。
话虽这么说,当我运行:
cat /usr/dict/words | grep -v [A-Zbcdefghijlkpqrtuvwxyz]
我得到正确的输出。我很困惑。这是怎么回事?
鉴于你没有看/usr/share/dict/words
,我假设你不在linux上。鉴于+
是grep
的非标准扩展,我猜想您使用的grep
不能识别+
。尝试:
grep '^[mason][mason]*$' /usr/dict/words
或
grep -E '^[mason]+$' /usr/dict/words
或者仅仅是''^ *'' - 该文件中可能没有空白行。 – 2013-02-12 00:05:07
不幸的是,这些建议都无效。我在Mac上运行它,但我只是在Linux delhi 3.2.0-35-generic上尝试了所有这些东西,并且它在那里也不工作 – Mason 2013-02-12 00:08:38
你希望他们匹配*仅*那些你的名字吗? – 2013-02-12 00:00:10
您的示例适用于我的操作系统x 10.6和centos – Eric 2013-02-12 00:13:56