Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 字符串替换不转义?_Regex_Unix_Sed - Fatal编程技术网

Regex 字符串替换不转义?

Regex 字符串替换不转义?,regex,unix,sed,Regex,Unix,Sed,我想用使用sed的test这个词来替换$\u SERVER['DB\u NAME']。我想不出来。我正在逃离$和括号…为什么我没有得到正确的结果 echo "\$_SERVER['DB_NAME']" | sed 's/\$_SERVER\['DB_NAME'\]/test/g' sed命令和“DB_NAME”都使用单引号。将sed命令行周围的引号更改为双引号或转义内部引号。您可以尝试此操作 echo "\$_SERVER['DB_NAME']" | sed "s/\$_SERVER\['DB

我想用使用sed的test这个词来替换$\u SERVER['DB\u NAME']。我想不出来。我正在逃离$和括号…为什么我没有得到正确的结果

echo "\$_SERVER['DB_NAME']" | sed 's/\$_SERVER\['DB_NAME'\]/test/g'

sed命令和“DB_NAME”都使用单引号。将sed命令行周围的引号更改为双引号或转义内部引号。

您可以尝试此操作

echo "\$_SERVER['DB_NAME']" | sed "s/\$_SERVER\['DB_NAME'\]/test/g"


我觉得自己很愚蠢。这么简单的解决方案。大多数sed示例都是用单引号编写的,因此我养成了用这种方式编写的习惯。引用双引号是有道理的。谢谢
echo "\$_SERVER['DB_NAME']" | sed 's/\$_SERVER\['"'"'DB_NAME'"'"'\]/test/g'