【问题标题】:Script to remove text from .js files从 .js 文件中删除文本的脚本
【发布时间】:2016-02-13 09:40:23
【问题描述】:

我需要编写一个 bash 脚本来从我的 Web 项目的任何 .js 文件中删除一些文本。 这些是我需要删除的元素:

if ( Utils.DEBUGGING ) /* ... */ ;
if ( Utils.DEBUGGING ) {/* ... */}
if ( Utils.DEBUGGING ) {
 /* ... */
}

if (Utils.DEBUGGING) /* ... */ ;
if (Utils.DEBUGGING) {/* ... */}
if (Utils.DEBUGGING) {
 /* ... */
}

if (Utils.DEBUGGING ) /* ... */ ;
if (Utils.DEBUGGING ) {/* ... */}
if (Utils.DEBUGGING ) {
 /* ... */
}

if ( Utils.DEBUGGING) /* ... */ ;
if ( Utils.DEBUGGING) {/* ... */}
if ( Utils.DEBUGGING) {
 /* ... */
}

你知道怎么做吗?

我是这样开始的:

#!/bin/bash
for i in *.js
do     
    # ...
done

谢谢

【问题讨论】:

  • 您想删除所有包含 Utils.debugging 或 /* */ 的行吗?您要删除哪种模式

标签: javascript regex bash shell


【解决方案1】:

如果块内的东西本身包含任何块,任何基于正则表达式的方法都会遇到困难。我猜您使用 /* ... */ 作为实际代码的占位符,但我猜实际上您的示例更复杂。

值得指出的是,如果该标志设置为 false,那么代码运行时的开销将非常小,因为编译器可以进行死代码消除 (DCE)。

也就是说,如果您真的想永久删除代码的这些部分,一种选择是使用诸如Closure Compiler 之类的工具。您可以通过 API 或作为独立的可执行文件在线交互式使用它。

如果您选择使用独立选项,您的代码可能是这样的:

for file in path/to/input/*.js; do
    output_file=path/to/output/"$file"
    java -jar compiler.jar -O SIMPLE --js_output_file "$output_file" "$file"
done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 2015-07-30
    • 2018-12-04
    • 2013-05-18
    相关资源
    最近更新 更多