小编Sum*_*mit的帖子

如何在git存储库中找到N个最大的文件?

我想在我的存储库中找到10个最大的文件.我想出的脚本如下:

REP_HOME_DIR=<top level git directory>
max_huge_files=10

cd ${REP_HOME_DIR}
git verify-pack -v ${REP_HOME_DIR}/.git/objects/pack/pack-*.idx | \
  grep blob | \
  sort -r -k 3 -n | \
  head -${max_huge_files} | \
  awk '{ system("printf \"%-80s \" `git rev-list --objects --all | grep " $1 " | cut -d\" \" -f2`"); printf "Size:%5d MB Size in pack file:%5d MB\n", $3/1048576,  $4/1048576; }'
cd -
Run Code Online (Sandbox Code Playgroud)

是否有更好/更优雅的方式来做同样的事情?

"文件"是指已经检入存储库的文件.

git

40
推荐指数
6
解决办法
1万
查看次数

如何在设置别名时转义单引号

想要创建此命令的别名

find . -name '*.sh' -exec chmod a+x '{}' \;
Run Code Online (Sandbox Code Playgroud)

并且在设置别名时我无法转义单引号

alias mx='find . -name '*.sh' -exec chmod a+x '{}' \;'
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

bash

17
推荐指数
3
解决办法
7321
查看次数

在ls(bash)中匹配文件名

我有以下文件

tcpdump-12
tcpdump-12.delay
tcpdump-24
tcpdump-24.delay
Run Code Online (Sandbox Code Playgroud)

有没有办法ls只有文件

tcpdump-12
tcpdump-24
Run Code Online (Sandbox Code Playgroud)

我可以

ls tcpdump-[[:digit:]][[:digit:]]
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一些更通用的东西,可以使用任意数量的数字,如tcpdump- [0-9] +,如果我使用的是vim或python正则表达式.

regex bash

11
推荐指数
2
解决办法
3万
查看次数

如何通过Linux中的specfic接口发送组播数据包

尝试了所有可能的方法无法找到解决此问题的方法.我有一台带有两个接口eth0和eth2的机器.我想要所有ff38:40:2001:dead:beef:cafe ::/96包继续使用eth2.我尝试了以下所有,但是当我做ping6 ff38:40:2001:dead:beef:cafe :: 1数据包总是在eth0上.我尝试过但没有工作的东西(例如,数据包仍然在eth0上发布).

$> route add --inet6 ff38:40:2001:dead:beef:cafe::/96 gw 2003::100 dev eth2
$> route add --inet6 ff38:40:2001:dead:beef:cafe::/96 dev eth2
$> route add --inet6 ff38:40:2001:dead:beef:cafe::/96 metric 1 gw 2003::100 dev eth2
Run Code Online (Sandbox Code Playgroud)

我的路由表是

[root@dev ~]# route --inet6  |grep eth0
fe80::/64                                   *                                       U     256    0        0 eth0
ff00::/8                                    *                                       U     256    0        0 eth0

[root@dev ~]# route --inet6  |grep eth2
2003::/64                                   *                                       U     256    68       0 eth2
fe80::/64                                   *                                       U     256    0        0 eth2
ff38:40:2001:dead:beef:cafe::/96            2003::100                               UG    1      0        0 eth2 …
Run Code Online (Sandbox Code Playgroud)

linux routing multicast ipv6

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

如何防止Java代码中的完全限定名称

如果java项目在代码中使用完全限定名称,是否可以使用checkstyle进行检查.我们想要阻止像这样的代码

if (org.apache.commons.lang3.StringUtils.isBlank(name)) { 
 ....
 ....
} 
Run Code Online (Sandbox Code Playgroud)

并希望强制执行相反导入的包.

还有其他工具可以帮助我们实现它吗?

java checkstyle intellij-14

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

使用python中的公式计算第n个斐波纳契数

我正在使用(a)线性方法计算第n个斐波那契数,以及(b)表达式

Python代码:

'Different implementations for computing the n-th fibonacci number'

def lfib(n):
    'Find the n-th fibonacci number iteratively'
    a, b = 0, 1
    for i in range(n):
        a, b = b, a + b
    return a

def efib(n):
    'Compute the n-th fibonacci number using the formulae'
    from math import sqrt, floor
    x = (1 + sqrt(5))/2
    return long(floor((x**n)/sqrt(5) + 0.5))


if __name__ == '__main__':
  for i in range(60,80):
    if lfib(i) != efib(i):
      print i, "lfib:", lfib(i)
      print " …
Run Code Online (Sandbox Code Playgroud)

python algorithm fibonacci

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

如何在 Vim 中正确扩展高亮组?

我想创建一个名称Italic完全相同 Normal但文本为斜体的组。我的Normal组设置为

Normal   ctermfg=251 ctermbg=234 guifg=#cccccc guibg=#242424
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 正确的做法是term=italic 按如下方式添加到设置中吗?

    hi Italic term=italic ctermfg=251 ctermbg=234 guifg=#cccccc guibg=#242424
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我想以一种通用的方式来做,即定义Italic这样的设置适用于所有颜色方案(以上仅适用于我当前的颜色方案)。有办法实现吗?就像是

    hi Italic extends Normal term=italic 
    
    Run Code Online (Sandbox Code Playgroud)

vim color-scheme highlight

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

将不同的颜色方案应用于不同的窗口

我想对不同的文件类型使用不同的colorchemes,并在.vimrc中添加了以下代码

function SetColorScheme ()
  if &filetype != "vo_base"
    colorscheme desertEx 
  endif
endfunction 
au WinEnter * call SetColorScheme()
Run Code Online (Sandbox Code Playgroud)

一个问题就可以正常工作。

如果我打开一个.otl文件,请说todo.otl(vo_base),然后使用:sp打开另一个文件,例如example.xml。colorscheme desertEx不会应用到第二个窗口(具有example.xml的窗口)。

如果我使用BufEnter而不是WinEnter,则desertEx将同时应用于两个窗口。

有没有一种方法可以确保当我使用:sp打开一个窗口时,上述功能(a)运行,而(b)仅针对该特定窗口运行,而不针对当前会话中的所有窗口运行。

vim

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

在1..n范围内找到具有均匀概率的k个非连续随机数

我试图k在范围内找到随机数,1..n使得没有k数字是连续的.我想出的代码是

def noncontiguoussample(n,k):
    import random
    numbers = range(n)
    samples = []
    for _ in range(k):
        v = random.choice(numbers)
        samples.append(v)
        for v in range(v-1, v+2):
            try:
                numbers.remove(v)
            except ValueError:
                pass

    return samples
Run Code Online (Sandbox Code Playgroud)

更新:我知道这个函数不会以均匀的概率返回样本.基于我的有限测试,下面的Amber解决方案满足条件(a)样本的各个元素是非连续的,以及(b)以均匀概率生成所有可能的k个样本(来自1 ... n).

python random probability

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

有没有办法通过checkstyle或findbugs限制某些java导入

我们致力于一个依赖于许多其他库的项目.这些库位于我们不想在我们的项目中使用的其他库中.但是对于许多开发人员来说,很难实现我们可以或不能在我们的项目中使用哪种类型的库.在checkstyle或findbugs中我们可以检查某些进口产品吗?

import edu.emory.mathcs.backport.java.util.Arrays 
Run Code Online (Sandbox Code Playgroud)

并引发一个不允许这样导入的标志(即使编译器不会抱怨,因为这个库是我们依赖的其他库的项目的一部分.)

java findbugs checkstyle

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