sed:无法解决这个正则表达式

Tec*_*ist 5 regex linux sed

我正在尝试使用两个sed命令替换php文件中的两个字符串,找不到我错的地方.

想要从字符串转换

setlocale(LC_ALL,  $_COOKIE['lang']);
Run Code Online (Sandbox Code Playgroud)

putenv("LANGUAGE=".$_COOKIE['lang']);
Run Code Online (Sandbox Code Playgroud)

对弦乐

setlocale(LC_ALL,  $_COOKIE['lang'].'.utf8');
Run Code Online (Sandbox Code Playgroud)

putenv("LANGUAGE=".$_COOKIE['lang'].'.utf8');
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经到了以下但是没有用

sed -i "s/setlocale\(LC_ALL,  \$_COOKIE\['lang'\]\);.*$/setlocale\(LC_ALL,  \$_COOKIE\['lang'\]\.'\.utf-8'\)\;/" file.php

sed -i "s/putenv\('LANGUAGE='\.\$_COOKIE\['lang'\]\);.*$/putenv\('LANGUAGE='\.\$_COOKIE\['lang'\]\.'\.utf-8'\)\;/" file.php
Run Code Online (Sandbox Code Playgroud)

我绝对不是 sed和正则表达的专家,所以对我来说好吗?

Avi*_*vio 4

试试这两个:

sed 's/setlocale.LC_ALL,  ._COOKIE..lang...;/setlocale\(LC_ALL,  $_COOKIE\['\''lang'\''\].'\''.utf8'\''\);/g' file.php
sed 's/putenv..LANGUAGE...._COOKIE..lang...;/putenv\("LANGUAGE=".$_COOKIE\['\''lang'\''].'\''.utf8'\'');/g' file.php
Run Code Online (Sandbox Code Playgroud)