ANT中的Bash脚本删除文件中的文本

时间:2013-05-23 13:37:25

标签: php bash sed

我有这个脚本:

# run this command to create production version of project.html
/<!-- BEGIN PRODUCTION|END PRODUCTION -->/  { next }
/<!-- (BEGIN|END) DEVELOPMENT -->/ { skip = !skip; next }
!skip

简而言之,当我编译我的应用程序进行生产时,它会替换HTML文件中的文本。它删除了我的“BEGIN DEVELOPMENT”评论和“END DEVELOPMENT”评论之间的所有代码,并取消注释“BEGIN PRODUCTION”代码。以下是将被替换的文本示例:

<!-- BEGIN DEVELOPMENT -->
<link rel="stylesheet" href="/style.css" type="text/css" media="screen">    
<script type="text/javascript" src="/script.js"></script>
<!-- END DEVELOPMENT -->

<!-- BEGIN PRODUCTION
<link rel="stylesheet" href="/style.min.css" type="text/css" media="all" />
<script type="text/javascript" src="/script.min.js"></script>
END PRODUCTION --> 

这很有效。但是我需要在PHP文件中做同样的事情,我需要使用这种语法:

/* BEGIN DEVELOPMENT */
{PHP CODE}
/* END DEVELOPMENT */
/* BEGIN PRODUCTION
{PHP CODE}
END PRODUCTION */

它遵循相同的概念,但我无法使shell脚本工作。有人能告诉我为什么这不正确吗?:

# run this command to create production version of project.html
/\/* BEGIN PRODUCTION|END PRODUCTION *\//  { next }
/\/* (BEGIN|END) DEVELOPMENT *\// { skip = !skip; next }
!skip

感谢您的帮助!

UPDATE 根据下面的评论,这是正确的语法,它的工作原理:

# run this command to create production version of project.html
/\/\* BEGIN PRODUCTION|END PRODUCTION \*\//  { next }
/\/\* (BEGIN|END) DEVELOPMENT \*\// { skip = !skip; next }
!skip

1 个答案:

答案 0 :(得分:0)

现在可以将其标记为已回答:

# run this command to create production version of project.html
/\/\* BEGIN PRODUCTION|END PRODUCTION \*\//  { next }
/\/\* (BEGIN|END) DEVELOPMENT \*\// { skip = !skip; next }
!skip