我正在尝试替换:
#/*!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';
这是我的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
我想我的问题是问题'但我无法找到解决方案 你能帮帮我吗?
谢谢!
答案 0 :(得分:0)
要绕过在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
它产生:
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';