我有以下代码:
egrep -v "(^/\*\!40101.*\*/;$|^/\*\!50001.*\*/;$)"
这样可以正常跳过这样的文字:
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
/*!50001 DROP TABLE IF EXISTS `some_table_name`*/;
但是,如果我有这样的文字:
/*!50001 CREATE TABLE `some_table_name` (
`id` int(11),
`field1` char(30),
`field2` char(30),
) ENGINE=MyISAM */;
未能跳过它。有什么想法吗?
我想要的是:
如果有文字
Start with : /*!40101
End with : */;
或
如果有文字
Start with : /*!50001
End with : */;
我想跳过整行,或整个块。知道怎么做吗?
答案 0 :(得分:0)
你的正则表达式会跳过从40101或50001开始直到行尾的所有内容,但不会跳到下一行。它看起来并不像egrep支持多线匹配。