使用bash脚本从文件中删除块注释

时间:2013-01-09 09:33:46

标签: bash percona

有一种方法可以使用bash脚本从文件中删除/**/之间的所有行吗?

我使用 percona 生成一个sql脚本来同步两个数据库,一个开发一个到生产数据库。 Percona 会生成格式正确的SQL脚本,但会增加注释,从而增加文件大小。因此,为了使上传操作更容易,我宁愿删除所有不必要的内容。

1月10日编辑

我用这段代码解决了:

sed -r ':a; s%(.*)/\*.*\*/%\1%; ta; /\/\*/ !b; N; ba' <FILE_TO_CLEAN>

感谢所有

2 个答案:

答案 0 :(得分:3)

使用sed

sed '/\/\*.*\*\// d; /\/\*/,/\*\// d' file

命令d告诉sed删除与前面的表达式匹配的模式。第一个表达式/\/\*.*\*\//匹配单行注释,第二个表达式/\/\*/,/\*\//注释多行(这是,隐含的)。

我不知道这是否100%有效,但据我所知,它完成了这项工作。

答案 1 :(得分:0)

-Try this script-它应该有助于删除评论,因为与C ++ Here相同,您可以看到另一个用于删除HTML评论的sed示例