0

私は置き換えようとしています:

#/*!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

私の問題はキャラクターだと思いますが、解決策が見つかりません。

ありがとうございました !

4

1 に答える 1

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';
于 2013-03-03T10:10:36.223 に答える