小编meg*_*nce的帖子

使用 grep 仅获取每个文件中的第一个匹配项

我有一堆标记为file1.out, file2.out, file3.out, ...,的输出文件fileN.out

所有这些文件中都有一个名为“keystring”的字符串的多个实例。然而,只有“keystring”的第一个实例对我来说才有意义。其他线路不需要。

当我这样做时, grep 'keystring' *.out 我会到达所有文件,并且它们会输出keystring.

当我这样做时grep -m1 'keystring' *.out,我只在有密钥字符串时获取实例file1.out

我想提取所有这些输出文件中密钥字符串首先出现的行。我怎样才能做到这一点?

awk grep

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

将硬球装在盒子里

我试图将硬球装在一个单位立方体的盒子里,这样这些球不能相互重叠。这是在 Python 中完成的。我得到了一些填充分数f,系统中的球体数量是N. 所以,我说每个球体的直径将为 d = (p*6/(math.pi*N)**)1/3)。我的盒子有周期性的边界条件——这意味着我的盒子在所有方向都有一个重复出现的图像。如果有一个粒子在盒子的边缘并且它的一部分超出了墙壁,它会从另一侧伸出。

我的尝试:

  1. 创建一个 numpy N×3 数组box,其中包含每个粒子的位置向量[x,y,z]
  2. 第一个粒子很好。
  3. 阵列中的下一个粒子与所有先前的粒子一起检查。如果它们之间的距离大于d,则移动到下一个粒子。如果它们重叠,则随机更改相关粒子的位置向量。如果新位置不与之前的原子重叠,则接受它。
  4. 对下一个粒子重复步骤 2-3。

我试图用以下方式用这些硬球填充我的盒子:

for i in range(1,N):
    mybool=True
    print("particles in box: " + str(i))
    while (mybool): #the deal with this while loop is that if we place a bad particle, we need to change its position, and restart the process of checking
        for j in range(0,i):
            displacement=box[j,:]-box[i,:]
            for k in range(3):
                if abs(displacement[k])>L/2:
                    displacement[k] …
Run Code Online (Sandbox Code Playgroud)

python algorithm

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

标签 统计

algorithm ×1

awk ×1

grep ×1

python ×1