| 查看: 717 | 回复: 8 | ||
zhangyujin铜虫 (正式写手)
|
[求助]
怎样拣出一系列文档中每个文档第二列的最大值
|
| 我的程序运行出来结果是这样存放的:一个主文件夹下有十个子文件夹名字各不相同1、2、3、4……,每个子文件夹下有三十个.dat文档名字也不相同(z_0_E_t.dat/z_2_E_t.dat……),每个文档中有两列数据,每列有55602行。我需要把每个子文件夹中z_0_E_t.dat和z_2_E_t.dat中第二列的最大值求出来,然后把这些最大值放在一个文档中输出来,输出格式是二列,第一列存放的是十个子文件夹每个文件夹中的z_0_E_t.dat文档的第二列的最大值,第二列存放的是十个子文件夹每个文件夹中的z_2_E_t.dat文档的第二列的最大值。哪位高手能编写个小程序实现这个功能?什么语言都可以。感激不尽啊。 |
» 猜你喜欢
全日制(定向)博士
已经有5人回复
假如你的研究生提出不合理要求
已经有10人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
实验室接单子
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
» 本主题相关价值贴推荐,对您同样有帮助:
怎样批量把PDF文档中的标题提取出来重命名文件?
已经有5人回复
两列相乘得第三列,第三列求和记为A,第二列求和记为B,然后A除以B。
已经有5人回复
紧急求助,如何把一张图片随意地放在Word文档中的任何位置,而非按行插入?谢过先!
已经有3人回复

【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-03-02 14:13:23
zhangyujin: 金币+10, ★有帮助, 这样出来的不是按照顺序排列的呢 显示出来的数据有大有小 没什么规律 2013-03-02 21:03:29
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-03-02 14:13:23
zhangyujin: 金币+10, ★有帮助, 这样出来的不是按照顺序排列的呢 显示出来的数据有大有小 没什么规律 2013-03-02 21:03:29
|
cut -d\' \' -f 2 youfile | sort |tail 记不清这几个命令的参数了,如果不对看下帮助 基本方法是: 利用管道 cut的-d指定列与列间的分隔符,-f指定你要的列 sort将数据排序,排序貌似是升序,如果不对,加参数要求按数值或字符排 tail取最后10个 [ 发自手机版 http://muchong.com/3g ] |
2楼2013-03-02 11:18:19
jjdg
版主 (知名作家)
- 程序强帖: 9
- 应助: 223 (大学生)
- 贵宾: 3.926
- 金币: 51003.4
- 红花: 238
- 帖子: 7227
- 在线: 474.2小时
- 虫号: 27000
- 注册: 2003-10-21
- 专业: 药物代谢与药物动力学
- 管辖: 程序语言

3楼2013-03-02 14:19:09
zhangyujin
铜虫 (正式写手)
- 应助: 1 (幼儿园)
- 金币: 2513.7
- 散金: 6
- 红花: 3
- 帖子: 305
- 在线: 206.7小时
- 虫号: 1405590
- 注册: 2011-09-17
- 性别: MM
- 专业: 原子和分子物理

4楼2013-03-02 15:41:26
haixiawu
金虫 (文坛精英)
- 应助: 51 (初中生)
- 金币: 16312.7
- 散金: 300
- 红花: 6
- 帖子: 15283
- 在线: 3204.4小时
- 虫号: 1596983
- 注册: 2012-02-03
- 专业: 无机纳米化学
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zhangyujin: 金币+30, ★★★很有帮助, 脚本很好,但是我们这边的集群是每个人一个账户,所以提交脚本时还要做一些修改,我调了好久还是有错误,不知道能不能麻烦你在帮忙看看 2013-03-02 19:57:46
感谢参与,应助指数 +1
zhangyujin: 金币+30, ★★★很有帮助, 脚本很好,但是我们这边的集群是每个人一个账户,所以提交脚本时还要做一些修改,我调了好久还是有错误,不知道能不能麻烦你在帮忙看看 2013-03-02 19:57:46
|
使用bash脚本来做,请在linux或mac下执行。请在主文件夹下执行。 vim test.sh ### start of script #!/bin/bash for d in `ls -d -- */`; do cat $d/z_0_E_t.dat | awk '{print $2}' | sort -r | sed -n '1p' >> tmp cat $d/z_2_E_t.dat | awk '{print $2}' | sort -r | sed -n '1p' >> tmp done sed 'N;s/\n/ /' tmp > final.txt ### end of script |
5楼2013-03-02 15:46:33
haixiawu
金虫 (文坛精英)
- 应助: 51 (初中生)
- 金币: 16312.7
- 散金: 300
- 红花: 6
- 帖子: 15283
- 在线: 3204.4小时
- 虫号: 1596983
- 注册: 2012-02-03
- 专业: 无机纳米化学
【答案】应助回帖
|
python version: 可在windows下运行。 #start of script #!/usr/bin/env python def GetMax(fs): f = open(fs, "r" ![]() max = 0 for line in f.readlines(): v = line.split()[1] if v > max: max = v f.close() return max if __name__ == "__main__": m1 = [] m2 = [] import sys main_dir= sys.argv[1] f = open("result.txt", "w+" ![]() for i in range(1, 11): m1 = GetMax("%s/%d.f90.out/z_0_E_t.dat"%(main_dir, i)) m2 = GetMax("%s/%d.f90.out/z_2_E_t.dat"%(main_dir, i)) f.write("%d %d\n"%(m1, m2)) f.close() #end of script 运行方法:在命令行下运行 python process.py "C:/" |
6楼2013-03-02 16:17:23
haixiawu
金虫 (文坛精英)
- 应助: 51 (初中生)
- 金币: 16312.7
- 散金: 300
- 红花: 6
- 帖子: 15283
- 在线: 3204.4小时
- 虫号: 1596983
- 注册: 2012-02-03
- 专业: 无机纳米化学
7楼2013-03-03 01:42:50
zhangyujin
铜虫 (正式写手)
- 应助: 1 (幼儿园)
- 金币: 2513.7
- 散金: 6
- 红花: 3
- 帖子: 305
- 在线: 206.7小时
- 虫号: 1405590
- 注册: 2011-09-17
- 性别: MM
- 专业: 原子和分子物理
|
我们的集群是每个人一个账户,统一管理的,所以提交任务需要先建立一个临时目录,、计算相关信息存放在临时目录里,计算完了再删掉。下面的脚本是一个可执行的脚本,实现的是把bin文件夹里的若干个程序一起提交,按照顺序一个个的执行。我想把你给的那个寻找最大值并且输出的脚本嫁接到这个可执行的脚本上来,这样才可以用,但是改了很多地方都有问题,没有final.txt产生。因为刚接触linux语言,还不是太灵活,可能是我遗漏了需要改动的地方,麻烦你帮忙看一下怎么嫁接这两个脚本。 #!/bin/sh #PBS -N Others #PBS -l nodes=1:ppn=1 #PBS -l walltime=200:00:00 #PBS -q OTHERS #PBS -j oe NPROCS=`wc -l < $PBS_NODEFILE` mkdir -p /tmp/$PBS_JOBID cp -r $PBS_O_WORKDIR/* /tmp/$PBS_JOBID cd /tmp/$PBS_JOBID for ExeFile in $(ls /tmp/$PBS_JOBID/bin) do mkdir -p /tmp/$PBS_JOBID/Result/$ExeFile.out cp /tmp/$PBS_JOBID/bin/$ExeFile /tmp/$PBS_JOBID/Result/$ExeFile.out cd /tmp/$PBS_JOBID/Result/$ExeFile.out ifort $ExeFile /tmp/$PBS_JOBID/Result/$ExeFile.out/a.out done cp -r /tmp/$PBS_JOBID/* $PBS_O_WORKDIR rm -rf /tmp/$PBS_JOBID |

8楼2013-03-03 09:24:18
haixiawu
金虫 (文坛精英)
- 应助: 51 (初中生)
- 金币: 16312.7
- 散金: 300
- 红花: 6
- 帖子: 15283
- 在线: 3204.4小时
- 虫号: 1596983
- 注册: 2012-02-03
- 专业: 无机纳米化学
【答案】应助回帖
|
首先目录结构: $PBS_O_WORKDIR +--- bin | +---test.sh +-- data +---1.f90.out +--- xxx.dat +--- ... +---2.f90.out +.... vim test.sh ### start of script #!/bin/bash cd ../data for d in `ls -d -- */`; do cat $d/z_0_E_t.dat | awk '{print $2}' | sort -r | sed -n '1p' >> tmp cat $d/z_2_E_t.dat | awk '{print $2}' | sort -r | sed -n '1p' >> tmp done sed 'N;s/\n/ /' tmp > final.txt ### end of script |
9楼2013-03-03 10:33:29












回复此楼
