Sed pacman.conf 为 multilib 和 include 删除#

Sed pacman.conf remove # for multilib & include

我的自定义安装脚本实际上正面临着一堵墙。

在脚本的某一点,我需要为 64 位机器启用 64 位存储库并且(例如)我需要从该格式获取:

#multilib-testing[...]
#include[...]

#multilib[...]
#include[...]

到那个格式

#multilib-testing[...]
#include[...]

multilib[...]
include[...]

但是正如你所看到的,到处都有包含,我不能使用 sed,因为它会递归地删除那个特定文件的所有 "include" 而这不是我想要的...

我似乎无法找到 sed 的解决方案。我用

尝试了我在另一个线程上看到的东西
cat /etc/pacman.conf | grep -A 1 "multilib"

但是我没学好,没办法了...

理想情况下,我想要一个 sed 解决方案(但请随时告诉我,只要您解释一下我可以获得哪些其他选项!)。

模式(和开头)应该是这样的:

sed -i '/multilib/ s/#//' /etc/pacman.conf

并且应该对模式和之后的行(包含)有效。

此外,如果您真的能教我为什么要那样做或那样做,我会很高兴,如果我不明白为什么我会那样做,我会记不起来。 (也请原谅我的游戏中英文)。

我们可以使用它来按模式匹配范围。然后我们可以匹配每行开头的 # 并将其删除。

sed -i "/\[multilib\]/,/Include/"'s/^#//' /etc/pacman.conf