小编Vij*_*jay的帖子

使用来自多个文件的awk计算平均值

我有500个名字为fort.1,fort.2 ... fort.500的文件.每个文件包含800个数据,如下所示:

1 0.485
2 0.028
3 0.100
4 0.979
5 0.338
6 0.891
7 0.415
8 0.368
9 0.245
10 0.489

我想从每个文件中获取每行第二列的平均值.换句话说,从所有文件中获取第二列第一行的平均值并存储在"output.file"中.然后得到第二行第二列的平均值并存储在相同的"output.file"中.我尝试使用粘贴命令,但未能得到我想要的.在AWK有什么办法吗?

感谢任何帮助.谢谢

awk

7
推荐指数
3
解决办法
9276
查看次数

sh:语法错误:错误的fd编号

我需要一些帮助才能运行此代码.我从(http://easybioinfo.free.fr/?q=content/amber-trajectory-gromacs-xtc-conversion)获取此代码.我试图将琥珀色轨迹转换为gromacs轨迹.

当我执行此代码时,我得到一些错误.我粘贴此代码下面的错误:

    #!/usr/bin/python

#Workflow based on Trajectory Converter - v1.5 by: Justin Lemkul 
#completely reimplemented and improved by Peter Schmidtke & Jesus Seco

import sys,os,re,fnmatch

if len(sys.argv)>4 :
    f=sys.argv[1]
    if not os.path.exists(f):
        sys.exit(" ERROR : Something you provided does not exist. Breaking up.\n\nUSAGE : python trajconv_peter.py  amberCrd amberTop trajDir trajPattern outPutPrefix\n\n \
Example : python amber2xtc.py mdcrd.crd mdcrd.top md *.x.gz md_gromacs\n")
else :
    sys.exit(" \n  USAGE : python amber2xtc.py AMBERCRD AMBERTOP TRAJDIR TRAJPATTERN OUTPUTPREFIX\n\
    Example : python amber2xtc.py …
Run Code Online (Sandbox Code Playgroud)

python

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

python中的for循环

我想按顺序获取文件名列表.就像是

files-1-loop-21
files-1-loop-22
files-1-loop-23
files-1-loop-24
files-2-loop-21
files-2-loop-22
files-2-loop-23
.
.
.
and so on
Run Code Online (Sandbox Code Playgroud)

至于测试,我编写了如下python代码:

代码sample_1:

for md in range(1,5):
   for pico in range(21,25):
      print md, pico
Run Code Online (Sandbox Code Playgroud)

它给了我一对数字,如:

  `1 21
   1 22
   1 23
   1 24
   2 21
   2 22
   2 23
   2 24
   3 21
   3 22
   3 23
   3 24
   4 21
   4 22
   4 23
   4 24
Run Code Online (Sandbox Code Playgroud)

`

如果我使用:

代码sample_2:

 for md in range(1,5):
   for pico in range(21,25):
  print "file-md-loop-pico"
Run Code Online (Sandbox Code Playgroud)

我明白了

  files-md-loop-pico
  files-md-loop-pico
  files-md-loop-pico
  files-md-loop-pico
  files-md-loop-pico
  files-md-loop-pico …
Run Code Online (Sandbox Code Playgroud)

python

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

选择特定的行号

我有一个包含50,000行浮动值的文件.我需要每100行只选择一次数据.awk编程中是否有可用的命令?

提前谢谢了.

awk

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

重新排列来自多个数据文件的数据

我有40,000个数据文件.每个文件在单列中包含1445行浮点数.现在我需要以不同的顺序重新排列数据.

需要收集每个数据文件中的第一个数字并将其转储到新文件中(比如说abc1.dat).此特定文件(abc1.dat)将包含40,000个数字.

并且需要提取每个数据文件中的第二个数字并将其转储到另一个新文件中(假设为abc2.dat).这个新文件也将包含40,000个数字.但每个数据文件只有第二个数字.

在这个操作结束时,我应该有1445个文件(abc1.dat,abc2.dat,... abc40000.dat),每个文件包含40,000个数据.

如何实现这一目标?(使用Linux Ubuntu 11.10 - 64位)

感谢任何帮助.提前谢谢.

python bash perl awk fortran

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

在FORTRAN中定义文件的路径

在bash中,我可以编写一个简单的脚本,如下所示; 在我使用环境变量"fileplace"定义文件的路径时读取文件夹中文件的内容

#!/bin/bash

fileplace="/home/vijay/data1/process-folder1/"

cat $file/file1.dat
Run Code Online (Sandbox Code Playgroud)

我希望通过使用变量定义路径,在FORTRAN 90中实现相同的功能.我想这样做是因为我的文件夹位置路径很长,我想避免在FORTRAN 90中对长行使用&和+符号.

我曾尝试编写如下的简单FORTRAN 90代码进行测试.

program test_read
implicit none

open (unit=10, status="old",file="/home/vijay/data1/process-folder1/file1.dat")
read(10,*) junk
write(*,*) junk 

stop
end
Run Code Online (Sandbox Code Playgroud)

如果我可以避免在FORTRAN代码中使用长路径(/ home/vijay/data1/process-folder1 /).有没有可能实现这个目标?如果是,任何人都可以帮助纠正这个FORTRAN代码?提前感谢任何帮助.

谢谢

维杰

fortran fortran77 fortran90

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

在Fortran 90中打开多个文件

我想打开10,000个文件名从abc25000until 开始的文件abc35000,并将一些信息复制到每个文件中.我写的代码如下:

PROGRAM puppy
IMPLICIT NONE

integer :: i
CHARACTER(len=3) :: n1
CHARACTER(len=5) :: cnum
CHARACTER(len=8) :: n2

loop1: do i = 25000 ,35000  !in one frame

  n1='abc'
  write(cnum,'(i5)') i
  n2=n1//cnum
  print*, n2
  open(unit=i ,file=n2)

enddo loop1
Run Code Online (Sandbox Code Playgroud)

结束

这段代码应该从abc24000直到开始生成文件,abc35000但它停止大约一半的说法

在test test-openFile.f90的第17行(unit = 26021,file ='')

Fortran运行时错误:打开的文件太多

我需要做些什么来修复上面的代码?

fortran fortran90

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

使用该列的最大值标准化列数据

我有一个包含两列的数据文件.我想找出第二列的最大数据值,并将第二列的每个条目除以最大值.(所以我将在第二列中获得所有条目<= 1.00).

我尝试使用以下命令:

awk 'BEGIN {max = 0} {if ($2>max) max=$2} {print  ($2/max)}' angleOut.dat
Run Code Online (Sandbox Code Playgroud)

但我得到如下错误信息.

awk: (FILENAME=angleOut.dat FNR=1) fatal: division by zero attempted
Run Code Online (Sandbox Code Playgroud)

注意:第二列中有一些数据是零值.但是当零值除以最大值时,我应该得到零,但我得到如上所述的错误.

我能得到任何帮助吗?

提前谢谢了.

awk gawk

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

循环变量文件名

我正在使用Fortran对大量数据集进行计算,这些数据集被分成许多文件.文件名是:

maltoLyo12per-reimage-set1.traj
maltoLyo12per-reimage-set2.traj
maltoLyo12per-reimage-set3.traj
Run Code Online (Sandbox Code Playgroud)

我编写的代码用于计算如下:

fileLoop: do j = 31, 34

 OPEN(unit=31,status='old',file=fileplace//'maltoLyo12per-reimage-set1.traj')
 OPEN(unit=32,status='old',file=fileplace//'maltoLyo12per-reimage-set2.traj')
 OPEN(unit=33,status='old',file=fileplace//'maltoLyo12per-reimage-set3.traj')
 OPEN(unit=34,status='old',file=fileplace//'maltoLyo12per-reimage-set4.traj')

 ... operation....

close (j)
end do fileLoop
Run Code Online (Sandbox Code Playgroud)

在运行期间,我希望代码一次打开每个文件,并在完成计算后关闭它们.但是上面的代码将立即打开所有文件,并在完成计算后逐个关闭它们.

所以我试着改变代码,如下所示:

fileLoop: do j = 31, 34

 OPEN(unit=j,status='old',file=fileplace//'maltoLyo12per-reimage-set1.traj')

close (j)
end do fileLoop
Run Code Online (Sandbox Code Playgroud)

但在这里我遇到了文件名的问题.每次循环运行时,文件名都不会因文件名中的短语"set1"而改变.我希望文件名中的数字更改为set1,set2,set3等,随后文件单元号为31,32,33,34等.

fortran fortran90

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

在fortran中读取多个文件

我有数百个文件名为fort.1,fort.2,fort.3等文件,直到fort.5000.我想要的是打开每个文件并操作该文件并关闭.然后继续下一个文件.我想在Fortran 90中这样做.

我已经浏览但无法得到我想要的东西.我看到一个开放的线程,但它对我没什么帮助.

我试着写'

program openFile
IMPLICIT none
INTEGER(I-N), REAL*8(A-H,O-Z)
real,dimension(2000) :: angle           
CHARACTER(len=10) FN
integer::I, k
integer,parameter :: N=102  
DO I=101,N
!WRITE(FN,10) I
!WRITE(6,*) FN
OPEN(1,FILE=FN)
do k=1,200
read(1,'(F8.3)') angle(k)
print*,
end do      
CLOSE(1)
enddo 
10 FORMAT(5Hfort.I3)
STOP
END
Run Code Online (Sandbox Code Playgroud)

`但似乎它不起作用.这可能是我得到一些帮助吗?提前致谢.

fortran

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

打开多个文件

我想打开多个文件,文件名改变不多.

例如,我想打开

abc.001.xyz.010.trj
Run Code Online (Sandbox Code Playgroud)

对数据文件进行一些操作后,我想将结果保存到文件中:

out.abc.001.xyz.010.trj.dat
Run Code Online (Sandbox Code Playgroud)

这个过程应该持续到10个文件.

我知道如何打开这个文件

readfile = abc.001.xyz.010.trj
f = open(readfile, "r")
Run Code Online (Sandbox Code Playgroud)

后来我试着写入文件

outfile = out.readfile
f = open(outfile, "w")
Run Code Online (Sandbox Code Playgroud)

但我失败了.期望得到输出文件

 out.abc.001.xyz.010.trj.dat
Run Code Online (Sandbox Code Playgroud)

对于每个循环.

谢谢.

python

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

标签 统计

fortran ×5

awk ×4

python ×4

fortran90 ×3

bash ×1

fortran77 ×1

gawk ×1

perl ×1