作者giacch (小a)
看板Perl
标题Re: [问题] 请问怎麽将一个档案切割成许多档案?
时间Thu Sep 4 01:29:55 2008
※ 引述《akirati (疯了)》之铭言:
: 档案像是这样子
: total energy
: ---------------
: 1123 12 3 212 313
: 12 23 123 13 313
: total energy
: ---------------
: 123 12 13 215 411
: 1 212 212112 2222
: ...
: 有一行total energy会一直重复
: 想说要从total energy这行将档案切割成数个档案
: 不知道要怎麽去下手@@
===== /tmp/aaa.txt ====
total energy
---------------
1123 12 3 212 313
12 23 123 13 313
total energy
---------------
123 12 13 215 411
1 212 212112 2222
...
=======================
===== /tmp/test.pl ====
#!/usr/bin/perl
$File = '/tmp/aaa.txt';
$Mark = 'total energy';
sub toFile {
if(@_) {
$Part = "$File." . ++ $No;
open(OUT, "> $Part") or die "$Part: $!\n";
print OUT @_;
close(OUT);
}
}
open(IN, $File) or die "$File: $!\n";
while(<IN>) {
if(/$Mark/) { toFile @Temp; undef @Temp; }
push(@Temp, $_);
}
if(@Temp) { toFile @Temp; undef @Temp; }
close(IN);
=======================
将产生 /tmp/aaa.txt.1 /tmp/aaa.txt.2 内容各为...
===== /tmp/aaa.txt.1 ==
total energy
---------------
1123 12 3 212 313
12 23 123 13 313
=======================
===== /tmp/aaa.txt.2 ==
total energy
---------------
123 12 13 215 411
1 212 212112 2222
...
=======================
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.232.236.185
1F:推 akirati:感谢大大 问题解决了^^ 09/04 13:22