gpt4 book ai didi

bash - sed 单引号

转载 作者:行者123 更新时间:2023-11-29 09:06:55 31 4
gpt4 key购买 nike

我一直在使用 SED (Bash shell) 转义单引号问题。

我需要做

$cfg['Servers'][$i]['password'] = '';

进入

$cfg['Servers'][$i]['password'] = 'mypassword';

我试过的是:

sed -i "s/$cfg['Servers'][$i]['password'] = '';/$cfg['Servers'][$i]['password'] = '$rootpassword';/g" /usr/share/phpmyadmin/libraries/config.default.bak

这最终确实打乱了线路。

$cfg['Servers'][$i]['password['Servers'][]['passsword'] = 'mypassword'

我已经尝试过使用“\”来转义单引号,我认为其他一切都在阳光下,但就是无法做到这一点。

谁能指出我可能犯的明显错误?

谢谢。

最佳答案

您可以使用 \x27 作为单引号,而不是转义。这不仅适用于 sed,也适用于 awk 等。

查看测试:

kent$  cat tt
$cfg['Servers'][$i]['password'] = ''

kent$ sed -r 's/(\$cfg\[\x27Servers\x27\]\[\$i\]\[\x27password\x27\] \= \x27)\x27/\1mypassword\x27/g' tt
$cfg['Servers'][$i]['password'] = 'mypassword'

请注意,sed 行可能不是您问题的最佳解决方案,例如可能没有必要将整个字符串放入“s/../”。然而,我只想展示\x27 是如何工作的。

关于bash - sed 单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8510713/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com