我試圖找到/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