首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批量删除javascript文件中的注释

问批量删除javascript文件中的注释
EN

Stack Overflow用户
提问于 2015-11-06 02:49:17
回答 2查看 241关注 0票数 2

我正在一个大的基础上进行一些分析,主要是javascript (实际上主要是Siebel eScript,但从语法上讲,这几乎是一回事)

多年来,糟糕的程序员已经进入并评论了大量的代码,通常是函数的全部内容,并将其保留在那里。我想在代码库中寻找这样的示例,这样我就可以指导开发人员返回并清理其中的一些混乱。我有>10,000个文件,所以我想要一个bash脚本来帮我做到这一点。

我最终想要的是通过linux中的文本文件并输出每个文件中的代码和注释的字符数。

我试过的是:

sed -这里的几个问题会导致正则表达式找到//行列式和/* */对,并删除相关的注释。我尝试过一些代码片段,但它们似乎失败了(没有返回)足够多的代码,或者删除了非注释-所以我认为regex不是可行的。

我试过了,但是我找不到怎么做,只是简单的评论。缩小意味着我的wc -c结果太偏斜了

现在,这个问题的理想答案应该是告诉我使用什么命令行解析器来处理我的javascript文件来删除注释。我可以自己做剩下的事,但感觉这是我目前逃避的部分。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-06 03:37:30

考虑到您对操作系统不清楚,很难猜测您有什么命令行解析器。(wc在Linux和cygwin操作系统下都可以使用)。

我不认为是“命令行”起作用,您需要一个了解Javascript的工具,考虑到您的问题是如何保留有效的javascript词汇,并且只丢弃注释,这似乎是可能的。这可能很难写,因为它必须是对语言中的每一个词的所有regexp的分离。人们使用lexer生成器来计算这种分离;您可能无法手工完成。(是的,我写过生产JavaScript词汇)。

要获得这种效果,最简单的方法是将手放在一个完整的Javascript /解析器上。

我们的Javascript格式化程序包含这样一个lexer/解析器;它的工作是重新格式化您的代码。它的命令行选项之一是删除注释。您可以将其配置为使用项目文件在一步内处理多个文件。

基于Seibel的断言,escript是符合ECMAScript 4的,这可能对你有用。

票数 0
EN

Stack Overflow用户

发布于 2015-11-09 06:44:03

最终,我的解决办法是:

代码语言:javascript
复制
for d in *Script*; do for f in ${d}/*; do echo `/usr/bin/python -m jsmin ${f} | wc -c` `wc -c ${f}`; done; done > function-size.txt

一些示例输出(它发现大部分代码都被注释的例子):

代码语言:javascript
复制
36 2388 Business+Component+Server+Script/FS+Invoice+Adjustment.Old_BusComp_NewRecord
90 1981 Business+Component+Server+Script/FS+Invoice+Adjustment.Old_BusComp_PreGetFieldValue
43 2012 Business+Component+Server+Script/FS+Invoice+Adjustment.old_BusComp_PreSetFieldValue
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33558650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档