2013-01-09 90 views
0

有一种方法使用bash脚本从文件中删除包裹/**/之间的所有行删除块的意见?从文件有一个bash脚本

我用percona生成一个sql脚本来同步两个数据库,一个开发到一个生产。 Percona生成一个格式良好的SQL脚本,但充满了增加文件大小的注释。所以,为了简化上传操作,我宁愿删除所有不必要的东西。

EDIT 1月10日

我这个代码解决:

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

感谢所有

回答

2

使用sed

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

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

我不知道,如果这个工程100%,但据我试过,它做的工作。

+0

这个命令只涉及以注释开头的行,或者即使注释位于另一行的末尾也行得通! –

+0

我用完成解决问题的脚本重新编辑了问题。谢谢! –

0

-Try this script-应该有助于消除的意见,因为是相同的C++ Here你可以看到另一SED例如删除HTML注释