我正在尝试在配置文件中替换名为boots的软件包的所有引用。

行格式为add fast (package OR pkg) boots-(any-other-text),例如:

add fast package boots-2.3
add fast pkg boots-4.5

我要替换为:
add fast pkg boots-5.0

我尝试了以下sed命令:
sed -e 's/add fast (pkg\|package) boots-.*/add yinst pkg boots-5.0/g'
sed -e 's/add fast [pkg\|package] boots-.*/add yinst pkg boots-5.0/g'

什么是正确的正则表达式?我认为我在 bool(boolean) 或(packagepkg)部分缺少某些内容。

最佳答案

sed -e 's/add fast \(pkg\|package\) boots-.*/add yinst pkg boots-5.0/g'

您总是可以通过两次操作来避免OR
sed 's/add fast pkg boots-.*/add yinst pkg boots-5.0/g
s/add fast package boots-.*/add yinst pkg boots-5.0/g'

10-08 05:40