sed替换需要协助

问题描述

我在/var/www/html/daloradius/library/daloradius.conf.php有一个文件

具有以下提到的行:

$configValues['CONFIG_DB_PORT'] = '3306'
$configValues['CONFIG_DB_USER'] = 'root'

我要替换'3306'--->'5432'和'root'->'postgres' 使用shell脚本,所以请协助我如何使用sed命令。

解决方法

如果您无法在安装之前准备配置文件,而只是通过标准配置解压缩版本,则可以使bash脚本如下所示:

#!/bin/bash

set -e

dalconf="/var/www/html/daloradius/library/daloradius.conf.php"

cleanup() {
    rm -f "$tmpfile"
}

trap cleanup EXIT
tmpfile=$(mktemp)

# '3306' --> '5432' and 'root' --> 'postgres'

sed -E -e "s/'3306'/'5432'/" -e "s/'root'/'postgres'/" "$dalconf" > "$tmpfile"
mv "$tmpfile" "$dalconf"

注意:'3306''root'上的任何匹配项都将匹配,因此请增加匹配字符串的数量,以使您感到舒服。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...