Sed 特殊字符

Sed 特殊字符,sed,Sed,我正在尝试替换: #/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 与: SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'; 这是我的sed命令,它不起作用 sed 's|#/\*\!4

我正在尝试替换:

#/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
与:

SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
这是我的sed命令,它不起作用

sed 's|#/\*\!40101 SET @OLD_SQL_MODE=@@SQL_MODE\, SQL_MODE=`NO_AUTO_VALUE_ON_ZERO` \*/;|SET @OLD_SQL_MODE=@@SQL_MODE\, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'\;|' file.sql > filenew.sql
我想我的问题是角色,但我找不到解决办法 你能帮帮我吗


谢谢大家!

要绕过在
sed
命令中使用单引号的问题,请将其括在双引号之间:

sed "s|#/\*\!40101 SET @OLD_SQL_MODE=@@SQL_MODE\, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' \*/;|SET @OLD_SQL_MODE=@@SQL_MODE\, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'\;|" file.sql > filenew.sql
它产生: