标题真的说明了一切。任何人都可以指出我在哪里可以找到find命令可用的不同正则表达式类型的描述。我能够找到它们的列表,但没有解释或比较。特别是,posix-egrep'之间的区别是什么?并且' posix-extended,'因为egrep是根据扩展集进行正则表达式匹配的工具吗?
答案 0 :(得分:1)
让我通过向您介绍如何使用linux的文档自我回答这样的问题,向您展示我如何找到信息。
man find
来运行regular
以查看正则表达式类型的一些基本信息,然后我会看到:-regextype type
更改-regex和-iregex测试所理解的正则表达式语法,这些语法稍后会出现在命令行中。要查看已知的正则表达式类型,请使用 -regextype帮助。 Texinfo文档(参见另请参阅)解释了各种类型的正则表达式的含义和差异。
假设这是您正在寻找的,那么该文档会在Texinfo
中说明,所以我会采取下一步措施;
info find
。然后搜索regextype
以找到正确的部分。然后我到达了:' - regextype'
此选项可更改正则表达式语法和行为 由' - 正则表达式'使用选项。 *注意正则表达式::了解更多信息 关于GNU理解的正则表达方言的信息 的findutils。
它要求参考名为 note正则表达式的进一步文档,您可以通过在光标上点击输入来到那里。
菜单:
findutils-default正则表达式语法::
awk正则表达式语法::
egrep正则表达式语法::
emacs正则表达式语法::
gnu-awk正则表达式语法::
grep正则表达式语法::
posix-awk正则表达式语法::
posix-basic正则表达式语法::
posix-egrep正则表达式语法::
posix-extended正则表达式语法::
最后两项正是您的要求。阅读它们,然后您就可以发现系统已经为您提供了正确的答案。
答案 1 :(得分:0)
根据信息文档,它们非常相似,但有以下区别:
字符“。”匹配任何单个字符。
字符“ *”,“ +”和“?”在正则表达式的任何地方都是特殊的。
间隔由'{'和'}'指定。无效的间隔被视为文字,例如'a {1'被视为'a {1'
字符“。”匹配除空字符以外的任何单个字符。
'*','+'和'?'在正则表达式的任何地方都是特殊的 除了以下不允许的地方:
间隔由'{'和'}'指定。无效的时间间隔,例如 'a {1z'不被接受。