在两个JavaScript注释之间替换代码

Replacing code between two JavaScript comments

本文关键字:注释 之间 替换 代码 JavaScript 两个      更新时间:2023-09-26

我需要从bash中设置JavaScript变量的值。变量存在于index.html文件中,我想使用unix SED命令来实现这一点。在index.html我有它湖这个:

<script>
/*bash_var*/ var foo = 1;  /*end_bash_var*/
</script>

我试着这样做:

sed -i -e 's%/*bash_var*/(.*)/*end_bash_var*//'"$ var foo = 0; /g" index.html

以及这个命令的一些变体,但我总是会遇到一些错误。

谢谢你的帮助。

更新

预期输出:

<script>
/*bash_var*/ var foo = 0;  /*end_bash_var*/
</script>

您需要逃离*。此外,您的'是错误的,不需要%

sed 's#'(/'*bash_var'*/').*'(/'*end_bash_var'*/')#'1 var foo = 0; '2#'

请注意,我使用#作为分隔符,而不是/。通过这种方式,我可以在表达式中使用/,而无需对其进行转义。这使得sed命令的可读性提高了一点。然而,这仍然是乏味的。你能把你的index.htm改写成这样吗?

<script>
//BASHVAR
var foo = 1;
</script>

然后你可以使用

sed '/BASHVAR/{n; s/.*/var foo = 0;/;}'
sed 's#'(/'*bash_var'*/ *var foo = ').*'(; */'*end_bash_var'*/')#'10'2#'

如果是,则此上下文中foo的值