linux - 如何用 Linux Bash 指令替换文件的特殊字符行?

标签 linux bash shell awk sed

<分区>

我正在尝试修改 phpmyadmin 配置文件的行,准确地说是文件/etc/phpmyadmin/config.inc.php,在数据库服务器的行中,我需要用 bash 指令更改它。我试着用 sed 和 awk 命令来做,但我仍然没有结果。

我要修改的行如下:

$cfg['Servers'][$i]['host'] = $dbserver;

对于以下值:

$cfg['Servers'][$i]['host'] = '192.168.0.10';

最佳答案

cat ini
"$cfg['Servers'][$i]['host'] = $dbserver;"

cat ini |  sed "s/\$dbserver/'192.168.0.10'/"
"$cfg['Servers'][$i]['host'] = '192.168.0.10';"

换句话说,一个

sed -i.bak-e "s/\$cfg\['Servers'\]\[\$i\]\['host'\] = \$dbserver;/\$cfg['Servers'][\$i]['host'] = '192.168.0.10';/" /etc/phpmyadmin/config.inc.php

应该做的工作。 (以 .bak 副本作为预防措施)。

关于linux - 如何用 Linux Bash 指令替换文件的特殊字符行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53218510/

相关文章:

以空格作为批量参数的文件名

c++ - 为什么设置CPU亲和性会使线程运行更慢?

linux - Debian 上的 pgadmin 黑色背景字体

linux - 如何从 Active Directory 获取用户密码到期日期?

bash - bash函数非零退出代码

java - Shell 行为 : Two (identical? ) 实例的行为与 java 不同

C 数组在 Windows 和 Ubuntu 上的处理方式不同

linux - 将命令保存到变量中而不是运行它

macos - 无法在 Terminal.app OSX 上使用 Ctrl+A 和 Ctrl+E(bash 键绑定(bind))

linux - Shell 脚本命令输出与命令行输出不同