使用bash

时间:2015-05-20 08:35:23

标签: linux bash ubuntu-14.04

现在尝试让它工作一段时间没有任何成功。我知道有关于这个主题的类似帖子,但他们的例子不起作用或他们的正则表达式对我的purpouse是暴力的。 这很重: Comprehensive RegExp to remove JavaScript comments

我的问题非常简单,我有一个使用deploy.sh脚本创建的统一javascript文件,并且希望删除每个行,而第一个字符出现的地方是" //"忽略任何前面的空格和标签,如下所示:

// Remove this line
var foobar = "sometext";
    // remove this line with tab(s) before comment
    function foobar(); // Do not remove this!
  // remove this line with whitespace(s) before comment

这应该是通过在shellcript中执行的linux / ubuntu本机工具或程序语言来实现的,而没有任何外部文件使用像sed这样的东西。

我认为将注释行的使用条件作为可移除的约定应该非常简单,并且具有最小的误解风险。如果我想在生产版本中显示一些评论,那么我可以使用多行评论注释/ *评论* /

2 个答案:

答案 0 :(得分:1)

告诉grep放弃所有以0或更多空格序列开头的所有内容,然后//

$ grep -v "^\s*//" file
var foobar = "sometext";
    function foobar(); // Do not remove this!

答案 1 :(得分:0)

通过'grep -v'管道应该可以正常工作,即这样的事情(未经测试):

grep -Ev '^[ \t]*//' file > newfile

Grep的-v标志反转匹配:它将所有与正则表达式不匹配的行打印到标准输出。 执行匹配的行(您的注释行)将被忽略。