在 GitHub actions 中,将推送请求合并到 main 时,我想用
main
替换笔记本中出现的分支名称。
例如,给出以下行:
git clone --branch fork1 https://somrepo.git
使用下面的正则表达式,直到行尾的所有值都被替换,但是,我的目的是简单地将
fork1
替换为 main
:
sed -i 's/\(--branch\)\(.*\)/\1 main/'
另一个例子,给出以下行:
"https://colab.research.google.com/github/user/repo/blob/fork1/notebook.ipynb"
使用下面的正则表达式,直到行尾的所有值都被替换,但是,我的目的是简单地将
fork1/
替换为 main/
:
sed -i 's/\(fork1\/\)\(.*\)/\1 main\//'
第一种情况:匹配空格,后跟一系列非空格。将非空格替换为
main
s/\(--branch\)\s\+\(\S\+\)/\1 main/
正如用户 Tripleee 所指出的,您的 sed 版本可能不支持
\s
和 \S
。或者您可以使用:
s/\(--branch\)[[:space:]]\+\([^[:space:]]\+\)/\1 main/
第二种情况:将
/fork1/
替换为 /main/
:
s#/fork1/#/main/#
注意:在这种情况下选择的替换分隔符是
#
,而不是通常首选的 /
,因此 /
不必转义。