如何使用Linux命令行向PHP文件的现有数组中追加新数组
操作方法
核心逻辑是匹配$CONFIG数组的闭合行);,在该行之前插入你需要追加的数组内容即可,操作前建议先备份原文件避免出错:
cp config.php config.php.bak
方法1:直接用sed单行命令插入(适合短内容场景)
直接执行以下命令即可完成修改:
sed -i '/^);$/i \ array (\n '\''class'\'' => '\''\\OC\\Files\\ObjectStore\\S3'\'','\n '\''arguments'\'' =>\n array (\n '\''val1'\'' => '\''val1x'\'','\n '\''val2'\'' => '\''val1x'\'','\n ),\n ),' config.php
参数说明:
-i表示直接修改原文件,首次操作可先去掉-i参数预览输出结果,确认格式正确后再加-i执行修改/^);$/匹配行首为);的行,也就是$CONFIG数组的闭合行,如果你的闭合行前有空格,可将匹配规则改为/^\s*);$/适配前置缩进i是插入命令,会将后续内容插入到匹配行之前- 单引号用
'\''做Shell转义,\n代表换行,缩进对齐和原有数组保持一致
方法2:将待追加内容存为临时文件插入(适合长内容,不易出错)
- 先把你要追加的数组内容存为临时文件
s3_config.tmp,保持缩进和原数组一致:
array ( 'class' => '\\OC\\Files\\ObjectStore\\S3', 'arguments' => array ( 'val1' => 'val1x', 'val2' => 'val1x', ), ),
- 执行命令插入内容:
# 先插入内容到闭合行之前 sed -i '/^);$/e "cat s3_config.tmp"' config.php
- 确认修改无误后删除临时文件即可。
额外补充
- 如果你需要补全文件开头的
<?php标记,可执行命令:sed -i '1s/^/<?php\n/' config.php - 修改完成后可执行
php -l config.php检查PHP语法是否正确,避免语法错误导致业务异常
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

