为什么 sed 默认不使用扩展正则表达式模式?

Jim*_*Jim 10 linux sed regular-expression

我正在使用 sed。据我所知,我使用的是正确的正则表达式,但 sed 没有做任何事情。原来我使用的是\s+哪个 sed 无法理解,当我切换到[ ]+它时,它起作用了。

所以总而言之,我做了一个正则表达式,为了让它工作,我必须逃避几乎所有的事情并删除\sfor 空格。似乎有一种模式可以避免所有这些,-r所以我想问:

  1. 为什么不是-rsed 的默认模式?为什么我要费那么多心思来逃避一切?
  2. man说有选项--posix并且“应该支持POSIX.2 BRE”这是指什么?NFA/DFA 模式?

tin*_*ink 10

Re 1) 答案与几十年来改进的任何其他工具相同。:)

您不想通过更改默认行为来破坏现有脚本。

Re 2)那与匹配引擎无关;这只是支持哪组正则表达式的问题。POSIX BRE 的意思是“基本正则表达式”。