Mac High Sierra下VSCode 1.71.0终端执行命令报错:sed: illegal option -- r
问题原因
VSCode 1.71.0的终端初始化逻辑里用了GNU sed的-r扩展正则选项,但Mac High Sierra自带的是BSD版本sed——它不支持-r,而是用-E来启用扩展正则语法,这就导致了每次执行命令时弹出错误。
解决办法
方案一:替换脚本里的sed -r为sed -E
- 检查你的shell配置文件(比如
~/.bashrc、~/.zshrc),如果有VSCode自动添加的包含sed -r的代码段,把-r改成-E。 - 也可以查看VSCode的终端相关设置(比如
terminal.integrated.env.osx),如果有注入的脚本内容,修改对应的sed参数。
方案二:安装GNU sed并设置优先使用
- 用Homebrew安装GNU sed:
brew install gnu-sed
- 把GNU sed的路径加到shell配置文件的PATH最前面(以zsh为例,编辑
~/.zshrc):
export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
- 重启终端或者执行
source ~/.zshrc使配置生效,之后终端里的sed会默认使用GNU版本,支持-r选项。
临时应急方案
如果不想修改配置或安装软件,每次打开VSCode终端后执行:
alias sed='sed -E'
不过这个设置只在当前终端会话有效,关闭终端后会失效。
内容的提问来源于stack exchange,提问作者elo
相关产品推荐
相关产品推荐

