【发布时间】:2013-02-15 19:28:21
【问题描述】:
我想检查我的变量是否有这种格式--- foobar---> <some other stuff>
也就是说,我想知道文字是否以--- foobar --->开头
所以我使用了grep -q,但得到了这个错误:
$echo "--- foobar---> subtree " | grep -q "--- fooobar--->*"
grep: unrecognized option `--- fooobar--->*'
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
(这是OSX和grep's version is:
$ grep --v
grep (GNU grep) 2.5.1
Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
)
如何重写我的正则表达式以匹配预期的字符串?
谢谢。
【问题讨论】:
-
您能澄清一下您期望 * 采取什么行动吗?现在,正如它所写的那样,您告诉它在最后将您的字符串与 0 个或多个 '>' 匹配。如果你的意思是你的表达式后面的任何字符,它看起来像这样。"--- fooobar--->.*"
-
作为辅助评论,您可以在 [www.regexlib.com](www.regexlib.com) 上构建和测试正则表达式
-
刚刚添加了说明。我想检查文本是否以
--- foobar --->开头 -
如果你想检查它是否以它开头,那么我建议它阅读“^--- foobar --->”这将检查你的文本是否以 foobar 开头。我正在查找 '>' 是一个特殊字符,它可能需要使用 '\' 进行转义,然后看起来像这样 "^--- foobar ---\>"
-
我使用 regexlib.com 正则表达式测试器确认 > 不需要转义。我接下来建议使用 F.J 关于 -e 选项的答案。那应该解决它。但是,如果您要查看一行是否以您的模式开头,请记住在表达式的开头添加一个“^”