繁体   English   中英

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

[英]Remove block-comments from a file with a bash script

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

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

1月10日编辑

我用以下代码解决了:

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

谢谢大家

使用sed

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

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

我不知道这是否100%有效,但据我尝试,它确实起作用。

-尝试使用此脚本-它应该有助于删除注释,因为与C ++相同。 在这里您可以看到另一个sed示例,用于删除HTML注释

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM