首页 > 解决方案 > sed -e `s' 的未知选项

问题描述

我设置了一个 GitHub 工作流,由于一些我不知道的奇怪原因,当我添加了一个新的环境变量(sed用于设置它)时,发生了这个错误:

sed: -e expression #1, char 32: unknown option to `s'
Error: Process completed with exit code 1.

这是 .yml 文件的最后几行:

[...]
        run: |
          npm run build --if-present
          # There are a lot of sed commands here which were running as expected
          sed -i -e 's/"<API token>"/"${{secrets.API_TOKEN}}"/g' .env # This is one of the commands, it is executed normally with no errors
          sed -i -e 's/"<Mongo path>"/"${{secrets.MONGO_PATH}}"/g' .env
          # When the line above was added, the error started occurring

完整输出:

npm run build --if-present
  [...]
  sed -i -e 's/"<API token>"/"***"/g' .env
  sed -i -e 's/"<Mongo path>"/"***"/g' .env
  shell: /usr/bin/bash -e {0}

> app@1.0.0 build
> cp -n .env.example .env

sed: -e expression #1, char 32: unknown option to `s'
Error: Process completed with exit code 1.

我已经尝试用我在其他答案中看到的那样替换斜杠,@但它没有用。

如果没有我提到的那条线,工作流程就可以很好地工作。

标签: bashsed

解决方案


好吧,事实证明用|工作替换斜线。显然,sed 很困惑,因为 MongoDB 路径有很多斜线。


推荐阅读