小编One*_*ree的帖子

使用GREP计算短语的出现次数

使用GREP计算短语的出现次数

我有一个包含一堆文件的目录.因此,当我需要查看是否有任何文件包含某个短语时,我会使用

grep 'the phrase' mydir/*

有没有办法计算这些短语出现在这些文件中的总次数?

我用过 grep 'the phrase' mydir/* --count

但这会在每个单独的文件中出现,而不是总数,这不是我想要的.

unix grep

1
推荐指数
1
解决办法
6123
查看次数

1
推荐指数
1
解决办法
77
查看次数

在perl脚本中打印错误消息

我正在运行这段perl脚本:

system "bash", "-c",
" some command; exit \${PIPESTATUS[0]}"
and die "has failed"
Run Code Online (Sandbox Code Playgroud)

现在,如果some command没有正确执行,脚本将失败,has failed没有任何更多有用的信息.

如何使die命令打印生成的任何错误消息some command

谢谢

perl

1
推荐指数
1
解决办法
5311
查看次数

Java中的变量范围

在Java中,在使用它之前,您没有物理声明方法.同样的事情不适用于变量.为什么会这样?它只是出于"遗留"的原因(即,Java的创建者不喜欢这样做),还是只是不可能?

例如.,

public class Test
{
    // It is OK for meth1 to invoke meth2
    public void meth1() { meth2(); }
    public void meth2() { }

     // But why is it NOT ok for field1 to reference field2
     private int field1 = field2;
     private int field2 = 3;
}
Run Code Online (Sandbox Code Playgroud)

如果我希望我的Java编译器支持这种前向引用,那么关于如何执行它的一般想法是什么?我知道循环依赖关系存在问题,我们需要谨慎对待.但除此之外,我真的不明白为什么不可能.

[编辑]好的,这是我最初的想法,如何做到这一点.在分析代码时,编译器将为给定范围内的变量构建依赖关系图.如果它看到一个循环(即,int a = b; int b = a),那么它会抛出一个错误.如果没有循环,则必须有一些最佳方式来重新排列语句(在场景后面),这样一个字段只会引用在它之前声明的字段,因此它应该尝试找出顺序.我还没有找到确切的算法,但我认为这是可能的.除非有人能科学地证明我是错的.

回顾一下这个问题: 假设我正在尝试构建自己的Java方言,它支持这种范围.我的主要问题是,你能否就如何做到这一点给我一些想法

谢谢

java scoping

1
推荐指数
1
解决办法
129
查看次数

什么时候不要分解公共代码

我应该交换代码紧凑性以获得一点性能吗?具体来说,以下哪两个更可取:

// case 0:
final boolean flag = <some condition>;
for (int i = 0; i < SOME_COUNT; ++i)
{
    if (flag)
    {
        // do foo
    }
    else
    {
        // do bar
    }

}

// case 1:
final boolean flag = <some condition>;
if(flag)
{
    for (int i = 0; i < SOME_COUNT; ++i)
    {
        // do foo
    }
}
else
{
    for (int i = 0; i < SOME_COUNT; ++i)
    {
        // do bar
    }
}
Run Code Online (Sandbox Code Playgroud)

java

1
推荐指数
1
解决办法
420
查看次数

是否可以将命令的输出重定向到一个文件,但仍然保持输出在终端上回显?

是否可以将命令的输出重定向到一个文件,但仍然保持输出在终端上回显?

我希望输出转到一个文件,但我仍然希望在终端上看到它(只是因为我知道正在发生的事情)

linux shell io-redirection

0
推荐指数
1
解决办法
52
查看次数

在equal的实现中使用hashcode()

我可以使用实现hashCode()来实现我equals()的Java吗?或者这是一种不好的做法?

例如.,

public int hashCode()
{
    // some computation based on the internal states
}

public equals(Object o) 
{
     return o instanceof ThisClass ? hashCode() == o.hashCode() : false;
}
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
55
查看次数

为什么java-regex\d匹配下划线?我该如何解决?

我有这种模式匹配数字(和数字).但不知何故,它似​​乎也匹配下划线.

    Pattern pattern = Pattern.compile("(\\d)*");
    Matcher matcher = pattern.matcher("_");
    System.out.println(matcher.find());
Run Code Online (Sandbox Code Playgroud)

(这打印true意义_匹配(\\d)*)

这是一个错误???? (我知道下划线现在是数字文字的一部分(从Java 1.7+开始)

如何更改模式以排除下划线?

编辑:

从下面的建议,我试过这个[^_]*\\d*(这没用,顺便说一句)

java regex

0
推荐指数
2
解决办法
369
查看次数

Java中NaN数学的规则

我期待Double.NaN - Double.NaN等于0,但事实并非如此.

有人可以解释发生了什么吗?在NaN上做数学时有哪些经验法则?它是否像"如果任何sub-expr是NaN,那么整个expr是NaN"?

谢谢,

java nan

0
推荐指数
1
解决办法
143
查看次数

经常执行的表达式是否会缓存其结果?

for (int i = 0; i < foo + bar; ++i)
{
      // do something
}
Run Code Online (Sandbox Code Playgroud)

假设这foo + bar是一个巨大的数字,并且它的值在循环迭代期间不会改变.(也就是说,循环的身体不会改变foobar)

foo + barget 的值是否缓存在某个地方?或者每次都会重新评估?

C/C++会不会处理它与Java等高级语言的不同?

c++ java caching compiler-optimization cpu-cache

0
推荐指数
2
解决办法
91
查看次数