You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

busybox sed不支持范围替换,求olsrd.conf配置修改的sed/awk替代方案

方案1:Busybox Sed 实现

通过标记位标识是否处于目标插件的配置块内,规避不支持的范围匹配语法:

MYPORT="1234"
busybox sed -e '
/^LoadPlugin.*olsrd_txtinfo/ {
  x
  s/.*/1/
  x
}
/^}/ {
  x
  s/.*/0/
  x
}
x
/1/ {
  x
  s/.*[Pp][Ll][Pp][Aa][Rr][Aa][Mm].*[Pp][Oo][Rr][Tt].*/PlParam "port" "'"$MYPORT"'"/
  b
}
x
' olsrd.conf

需要直接修改原文件的话,在sed参数里加上-i即可。

方案2:Busybox Awk 实现(兼容性更稳定)

语法更清晰,不需要处理复杂的sed转义逻辑,适配性更高:

MYPORT="1234"
busybox awk -v port="$MYPORT" '
/^LoadPlugin.*olsrd_txtinfo/ { in_block=1 }
/^}/ { if (in_block) in_block=0 }
in_block && tolower($0) ~ /plparam.*port/ {
    print "  PlParam \"port\" \"" port "\""
    next
}
1
' olsrd.conf > olsrd.conf.tmp && mv olsrd.conf.tmp olsrd.conf
自定义修改适配方法
  • 要修改其他插件参数:把正则匹配规则里的olsrd_txtinfo替换为对应插件名即可,比如olsrd_jsoninfo
  • 要修改其他配置项:把正则里的port替换为对应参数名即可,比如accept

内容的提问来源于stack exchange,提问作者Christoph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:24:06