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

如何在Bash脚本中修改配置文件内的MY_CONFIG数组值?

如何用Bash脚本更新配置文件中的数组定义

嘿,这个需求其实用Bash里的sed工具就能轻松搞定,给你两种常用的方案,按需选择:

方案一:精准匹配旧数组内容替换

如果确定旧数组内容固定是['1','2','3'],可以直接精准匹配整行进行替换:

# 先备份配置文件,避免操作失误
cp your_config_file your_config_file.bak

# 执行替换命令(Linux环境)
sed -i 's/MY_CONFIG = \['\''1'\'',\''2'\'',\''3'\''\]/MY_CONFIG = \['\''4'\'',\''5'\''\]/g' your_config_file

# 如果是macOS环境,sed的-i参数需要加空字符串
sed -i '' 's/MY_CONFIG = \['\''1'\'',\''2'\'',\''3'\''\]/MY_CONFIG = \['\''4'\'',\''5'\''\]/g' your_config_file

命令解释:

  • -i:直接修改原文件(不加的话只会输出到终端,不会改动原文件)
  • s/旧内容/新内容/g:全局替换模式,g表示匹配到的所有符合条件的行都替换(如果你的配置里只有一行MY_CONFIG,g可以省略)
  • 单引号需要用\'转义,因为Bash中单引号内部无法直接嵌套单引号

方案二:匹配行前缀灵活替换

如果不确定旧数组的具体内容,只想替换所有以MY_CONFIG = [开头的行,可以用更通用的写法:

# 备份文件
cp your_config_file your_config_file.bak

# Linux环境
sed -i 's/^MY_CONFIG = \[.*\]/MY_CONFIG = \['\''4'\'',\''5'\''\]/' your_config_file

# macOS环境
sed -i '' 's/^MY_CONFIG = \[.*\]/MY_CONFIG = \['\''4'\'',\''5'\''\]/' your_config_file

命令解释:

  • ^MY_CONFIG = \[:匹配以MY_CONFIG = [开头的行
  • .*:匹配任意字符(直到行尾的])
  • 这样不管旧数组里是什么内容,只要符合这个行格式,都会被替换成新的数组['4','5']

注意事项

  • 一定要先备份配置文件!避免替换出错导致配置损坏
  • 如果你的配置文件中MY_CONFIG行有多余的空格(比如MY_CONFIG = ['1','2','3']),可以把命令里的空格改成\s*来匹配任意空格,比如MY_CONFIG\s*=\s*\['1','2','3'\]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:00:05