OS X 上的 sed - 似乎无法在正则表达式中使用 +

2023-12-31

现在根据所有文献

echo 1234abcd|sed "s|[0-9]\+|#|g"

应该输出#abcd。和

echo abcd|sed "s|[0-9]\+|#|g"

应该输出abcd。

但在 OS X 10.4.11 上,第一个表达式输出 1234abcd。在第一个示例中使用 * 代替 + 有效,但在第二个示例中失败,输出 #abcd,因为 [0-9] 模式匹配零次。

+ 运算符在 OS X 的正则表达式中不起作用吗?还有其他选择吗?

Thanks


On OSX, sed默认情况下使用基本 RE。你应该使用sed -E如果你想使用现代 RE,包括"+"一个或多个操作员。

See here http://developer.apple.com/documentation/Darwin/Reference/Manpages/man1/sed.1.html为表明sed默认使用基本 RE,here http://developer.apple.com/documentation/Darwin/Reference/Manpages/man7/re_format.7.html#//apple_ref/doc/man/7/re_format对于现代 RE 语法,以及here http://developer.apple.com/documentation/Darwin/Reference/Manpages/man1/ed.1.html#//apple_ref/doc/man/1/ed对于基本 RE (ed) 信息。


或者,如果您有一个正则表达式引擎doesn't支持+无论如何,你可以简单地使用*相反,通过转换(例如):

[a-z]+

into:

[a-z][a-z]*
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OS X 上的 sed - 似乎无法在正则表达式中使用 + 的相关文章

随机推荐

  • Facebook OAuthException:无法解密访问令牌

    我有一个正在运行的应用程序 它代表用户向他们的一位朋友发送预定的墙贴 该应用程序在相当长的一段时间内运行良好 但最近有一些用户报告消息未发布 日志显示 OAuthException The access token could not be
  • 将 UDT 子类型转换为超类型

    我在 Oracle 18c 中使用名为 ST GEOMETRY 的用户定义类型 UDT ST Geometry 存储类型 https desktop arcgis com en arcmap latest manage data using
  • 如何将“~/default.aspx”转换为“http://www.website.com/default.aspx”C#?

    我知道 ASP NET 自动执行此操作 但由于某种原因我似乎找不到该方法 帮助任何人吗 就像标题说的那样 如果我执行 Response Redirect Default aspx 它可以工作 但我不想重定向该网站 我只想要完整的网址 谁能帮
  • SQL 查询获取具有列最大值的表的行详细信息

    我有两张桌子 表格1 Num 1 2 3 Table 2 Num Date Amount 1 12 31 30 1 12 30 31 1 12 29 20 2 12 31 100 2 12 30 90 3 12 31 12 4 11 1 1
  • 烤宽面条自动编码器:如何使用解码器部分?

    假设我在烤宽面条中有一个自动编码器 有两个编码层和两个 InverseLayers 作为解码器 input InputLayer l1 Conv1DLayer input l2 DenseLayer l1 decoder part l2p
  • capybara-webkit:自动保存 RSpec 测试失败的屏幕截图

    当使用 capybara webkit 和 Rspec 测试失败时 如何自动保存 html 和屏幕截图 当 RSpec 测试失败时如何执行回调 加分点 如何避免出现以下错误 Capybara Driver Webkit WebkitInva
  • JS mouseenter 触发两次

    问题是关于事件 mouseenter 被触发两次 代码在这里 http jsfiddle net xyrhacom http jsfiddle net xyrhacom HTML div class elt text1 div class
  • Java、JPA、Glassfish、无效资源:jdbc/__default__pm

    我使用 Glassfish 3 1 2 2 构建 5 JPA EclipseLink MySQL 我通过 Glassfish 管理面板创建了 MySQL 池 从 GF 管理面板 Ping 到 MySQL 正常 我使用 persistence
  • 从 iframe 触发 jQuery 事件

    这是场景 我在 iframe 内发生了事件 到目前为止一切都运行良好 我刚刚遇到了一个问题 我想将事件从 iframe 分派到父级 我用它来触发 iframe 中的事件 body window parent document trigger
  • CMake:找到用 MinGW/MSYS 构建的 wxWidgets?

    我使用 MinGW 编译了 wxWidgets 2 8 12 为了实际进行构建 我通过 MSYS shell 调用了随 wxWidgets 一起分发的 autotools 构建文件 使用安装前缀为 H MinGW libs 这样做的结果是我
  • Android 拼写检查器设置意图

    在 Android 中 我可以启动键盘与输入设置对话框使用ACTION INPUT METHOD SETTINGS intent getPresenter startActivity new Intent Settings ACTION I
  • 如何找出 R 函数调用中使用了哪些参数值?

    我想知道是否有一个 Base R 函数来提取特定函数调用中使用的参数值 例如 对于每个对象x y and z下面 是否有一种通用的方法来提取参数名称 例如 n sd rate scale 正在使用和值 例如 1e4 for n 由用户或系统
  • Java:如何通过管道将InputStream传输到标准输出?

    有没有一种简单 因此快速 的方法来实现这一点 基本上只需要一些输入流 可能类似于socket getInputStream 并让流的缓冲区自动重定向到标准输出 没有简单的方法可以做到这一点 因为InputStream有一个拉式界面 当Out
  • 为什么重写方法不能抛出比被重写方法更广泛的异常?

    我正在阅读 Kathe Sierra 的 SCJP 6 书 并发现了关于在重写方法中抛出异常的解释 我完全没听懂 谁能给我解释一下吗 重写方法不得抛出新的已检查异常 或者比被重写方法声明的更广泛 例如 一个 声明 FileNotFoundE
  • PHP implode 数组生成 mysql IN 标准

    我有一个如下所示的函数 public function foo cities array anaheim baker colfax db global instance of Zend Db Adapter Pdo Mysql query
  • 模拟用户输入

    android 可以模拟用户输入吗 例如 有一些服务或一些线程将在后台工作并启动一些模拟用户输入的东西 因此如果我们在主屏幕上并且发生了模拟输入 假设单击 那么如果模拟的坐标是应用程序应该启动单击指向主屏幕上的某个图标 或者如果模拟输入指向
  • 微调器中的默认文本填充是什么

    我有一个微调器和一个风格类似于微调器的文本视图 我想对齐两者中的文本 但我不知道微调器中的文本有多少填充 你可以找到一件事安卓风格 https android googlesource com platform frameworks bas
  • 如何使用 Python 访问 Ring 0?

    这个答案指出Python中类的命名不是由于特殊特权而完成的 here https stackoverflow com questions 5602439 reasons behind naming in easy to confuse py
  • 如何比较 4 列

    我正在使用 Excel 中的表格 以下是工作表的示例 A B C D al id id id df id desc desc df id id desc df id id id ff desc id desc ff desc id desc
  • OS X 上的 sed - 似乎无法在正则表达式中使用 +

    现在根据所有文献 echo 1234abcd sed s 0 9 g 应该输出 abcd 和 echo abcd sed s 0 9 g 应该输出abcd 但在 OS X 10 4 11 上 第一个表达式输出 1234abcd 在第一个示例