标题: [文本处理] 批处理如何把文件内的内容按值排序? [打印本页]
作者: sweet惜缘 时间: 2011-12-13 21:55 标题: 批处理如何把文件内的内容按值排序?
文件见附件,要求按文件最后一项“Int_energy”的值从小到大将文件内容排序。结果输出到另一文件(excel类型)。文件中“ZINC14474813 Elapsed time 2 seconds ERROR: Could not complete growth Confirm that the grid box is large enough to contain the ligand and try increasing max_orientations.”内容可要可不要。谢谢!
作者: xudaweb 时间: 2011-12-14 10:19
纯粹的Excel操作?
作者: sweet惜缘 时间: 2011-12-14 12:25
结果输出的文件类型最好是excel类型,其他类型也可以。主要是把文件的内容按文件最后一项“Int_energy”的值从小到大排序。
作者: xudaweb 时间: 2011-12-15 13:23
选中Int_energy这列,在"Data"选项中点击"Sort"即可。纯粹的Excel排序。
如果需要脚本,还得高手写个VBS处理...
作者: sxw 时间: 2011-12-15 13:31
有重复或一模一样的行吗?
作者: sxw 时间: 2011-12-15 14:06
排序后,在附件上了。(我把你的数据复制为txt格式了)
作者: sweet惜缘 时间: 2011-12-15 14:31
不好意思,还需打扰下,我需要的是具体操作过程或代码。因为我需要排序的文件很多,附件中只是一小部分。麻烦您指导下。谢谢!
作者: sxw 时间: 2011-12-15 14:57
回复 7# sweet惜缘
我用的Perl脚本- use strict;
- use warnings;
- my @lines;
- open FH,"<","test.txt" or die;
- while (<FH>){
- next if /^\s+$/;
- push @lines,$_ if /.{50,}/;
- }
- # my @lines=<FH>;
- use Sort::Fields;
- my @sorted = fieldsort ["10n"], @lines;
- print "@sorted\n";
复制代码
作者: HAT 时间: 2011-12-16 11:27
回复 7# sweet惜缘
如果你所有的文件都是保存在Excel里面的,可以考虑使用VBA,或者用VBS来处理也行。
BAT适合处理纯文本格式的文件。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |