2013-03-03 6 views
0

Я пытаюсь заменить:Sed специальный символ

#/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 

С:

SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'; 

Вот моя СЭД команда, которая не работает ...

sed 's|#/\*\!40101 SET @[email protected]@SQL_MODE\, SQL_MODE=`NO_AUTO_VALUE_ON_ZERO` \*/;|SET @[email protected]@SQL_MODE\, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'\;|' file.sql > filenew.sql 

I думаю, моя проблема - это caracter ', но я не могу найти решение Можете ли вы мне помочь!

Спасибо!

ответ

0

Чтобы обойти проблему, используя одинарные кавычки внутри команды sed, окружить его в двойные кавычки:

sed "s|#/\*\!40101 SET @[email protected]@SQL_MODE\, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' \*/;|SET @[email protected]@SQL_MODE\, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'\;|" file.sql > filenew.sql 

Это дает:

SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'; 
+0

Спасибо! Оно работает ! –

Смежные вопросы