bash终端sed命令报错,求助排查是否因操作或更新导致
sed: illegal option -- r 报错原因及说明
报错信息
sed: illegal option -- r usage: sed script [-Ealn] [-i extension] [file ...] sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]
问题解答
这个错误既不是你操作导致终端故障,也不是系统/软件更新引发的问题,核心原因是不同平台的sed实现存在参数差异:
- macOS自带的是BSD版本sed,它不支持
-r选项(该选项属于GNU sed的扩展正则表达式参数);BSD sed对应的扩展正则表达式参数是-E。 - 你大概率是执行了一套基于GNU sed(常见于Linux环境)编写的脚本/命令,在macOS的VS Code终端中运行时就会触发这个报错。
解决方向
- 直接修改命令:把所有
sed -r替换成sed -E,适配BSD sed的语法。 - 安装GNU sed:如果需要长期用GNU sed的特性,可以通过包管理器(比如Homebrew)安装
gnu-sed,之后用gsed命令替代默认的sed。
内容的提问来源于stack exchange,提问作者ProdigyX6217
相关产品推荐
相关产品推荐

