我有一行uses: actions/checkout@v3.5.0
(* 注意开头的缩进 *),需要用多行文本替换
uses: actions/checkout@v3.5.0
- name: Set node version
run: |-
echo "NODE_VERSION=$(jq -r '.engines.node // "latest"' package.json)" >> $GITHUB_ENV
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Setup project-level .npmrc file and Run Node18 config fix
run: |
curl -u ${{ secrets.CICD_ARTYLAB_PUBLISH_USER }}:${{ secrets.CICD_ARTYLAB_PUBLISH_TOKEN }} --fail "https://someurl/api/npm/auth" >> ${{ env.npm_config_userconfig }}
if [[ $NODE_VERSION -ge 18 ]]; then
npm config --location project fix
fi
我确实尝试将多行文本放在一个文件中,并在sed
中使用它。但没有用。sed "s| uses: actions/checkout@v3.5.0|$content|g" edmg-ui-master.yml
获取以下错误。
sed:1:“s| uses:actions/c ...":替换模式内的非转义换行符
还有其他办法吗?
1条答案
按热度按时间mbzjlibv1#
这可能对你有用(GNU sed):
这将匹配所需的字符串,将新内容复制到保持缓冲区,然后将前导白色插入保持缓冲区的每一行。
在处理并删除原始行时打印结果。
注意:新内容保存在单独的文件中,例如
contentFile
,也可以包含缩进。