Sed:如何替换复杂的字符串



文件nls_test.pl包含一行:$sel->click("//button[text()='OK']");我想替换字符串 使用此字符串//button[text()='OK']

//button[text()='".$sel->get_resource_value("oracle.sysman.resources.CommonResourceBundle", "OK")."']

我试过:

sed -i".bak" 's#"//button[text()='OK']"#"//button[text()='".$sel->get_resource_value("oracle.sysman.resources.CommonResourceBundle", "OK")."']"#g' nls_test.pl

我得到:sel: Undefined variable

然后我尝试了:

sed -i".bak" 's#"//button[text()='OK']"#"//button[text()='".$sel->get_resource_value("oracle.sysman.resources.CommonResourceBundle", "OK")."']"#g' nls_test.pl

结果是一样的:sel: Undefined variable .

你能告诉我怎么做吗?谢谢!

试试这个:

sed -i -e "s@//button[text()='OK']"@//button[text()='".$sel->get_resource_value("oracle.sysman.resources.CommonResourceBundle", "OK")."']@g" nls_test.pl

这是疯狂的东西,这应该可以工作

x='".$sel->get_resource_value("oracle.sysman.resources.CommonResourceBundle", "OK")."'
sed -i.bak "s~$sel->click("(//button[text()=')OK(')]");~1$x2]~" file

最新更新