gpt4 book ai didi

regex - 使用字符串替换取消注释基于正则表达式的配置行

转载 作者:行者123 更新时间:2023-11-29 09:44:07 26 4
gpt4 key购买 nike

我有一个配置文件,其中包含一堆被注释掉的 repo URL。我需要取消注释一个特定的,我认为 sed 可以很容易地匹配正则表达式,然后在该行上进行字符串替换。

我想知道我的正则表达式是否适合 sed 语法,或者 sed 命令是否不正确?

mirrorRegex="^# http.*vendor.*distroARCH-1.1\/"
sed '/$mirrorRegex/s/# //' /etc/repos

之前:

# ftp://mirrors.example.com/distro/distroARCH-1.1/
# http://mirrors.example.com/distro/distroARCH-1.1/
# ftp://packages.vendor.org/distro/distro/distroARCH-1.1/
# http://packages.vendor.org/distro/distro/distroARCH-1.1/
# http://mirror.school.edu/pub/distro/distroARCH-1.1/
# http://system.site3.com/distroARCH-1.1/

之后:预期结果。

# ftp://mirrors.example.com/distro/distroARCH-1.1/
# http://mirrors.example.com/distro/distroARCH-1.1/
# ftp://packages.vendor.org/distro/distro/distroARCH-1.1/
http://packages.vendor.org/distro/distro/distroARCH-1.1/
# http://mirror.school.edu/pub/distro/distroARCH-1.1/
# http://system.site3.com/distroARCH-1.1/

最佳答案

您需要使用双引号来扩展 shell 变量:

sed "/$mirrorRegex/s/# //"

关于regex - 使用字符串替换取消注释基于正则表达式的配置行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20643843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com