User since
2008-04-13
2
Artikel
BenutzerIn
Schönen Guten Morgen!
Ich habe hier etwa 20 Textdateien mit je 100.000 Einträgen rumfliegen, die leider aufgeteilt werden müssen. Immer 25 Einträge in eine Textdatei. Die Einträge sind ordenlich untereinander angeordnet und sollen dies auch bleiben
Die Benennung der Listen sollte dann wie folgt sein:
liste1.txt
liste2.txt
...
liste1234.txt
.. und so weiter. Das ganze wäre per Hand enorm viel Arbeit, deshalb wüsste ich gerne, ob man das mit einem Script oder Programm einfacher umsetzen kann, und ob mir das eventuell jemand machen könnte.
Über eine Gegenleistung in Form von Geld können wir sehr gerne reden.
Würde mich sehr freuen wenn mir hier geholfen werden kann,
Mit freundlichen Grüßen,
pr0ViL
User since
2006-07-10
2611
Artikel
BenutzerIn
oder so:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/perl
use strict;
use warnings;
my $dateiname='liste%s.txt';
my $lines_per_file=25;
my @files=@ARGV;
die "Bitte Dateien angeben\n" unless(@files);
my $file_cnt=1;
my $out="";
my $line_cnt=0;
for my $file (@files)
{
if(open(my $fh,'<',$file))
{
while(my $line=<$fh>)
{
$line_cnt++;
chomp($line);
$out.="$line\n";
if($line_cnt>=$lines_per_file)
{
my $file_out_name=;
write_out($out,sprintf($dateiname,$file_cnt));
$file_cnt++;
$out="";
$line_cnt=0;
}
}
}
else
{warn "Konnte $file nicht oeffnen ($!)\n"}
}
write_out($out,sprintf($dateiname,$file_cnt)) if($out ne '');
####################################
sub write_out
{
my ($data,$file)=@_;
open(my $fhout,'>',$file) or die "Konnte $file nicht oeffnen ($!)\n";
print $fhout $data;
close($fhout);
}
getestet.
Aufruf: "perl scriptname datei_a datei_b datei_c"
User since
2008-04-13
2
Artikel
BenutzerIn
Hallo!
Vielen Dank schonmal für eure Antworten und die damit verbundenen Scripte.
Ich bin allerdings ganz neu in der Materie und daher kommt es leider zu Komplikationen. Eventuell könnt ihr mir ja auf die Sprünge helfen.
Ich habe auf meinem PC ActivePerl -> C:\perl\bin\perl
Nun habe ich eure Script als script.pl auf dem Desktop gespeichert, auf dem sich auf die jeweils zu bearbeitende Textdatei mit den 100.000 Einträgen befindet.
Führe ich nun eure Script aus, so öffnet sich nur kurz das blau-schwarze Fenster und nichts passiert.
Ich denke ich gehe falsch vor, könntet ihr mir eventuell auf die Sprünge helfen und kurz erläutern wie, und in welcher Reihenfolge ich vorgehen muss?
Bereits im Vorraus Danke!,
pr0ViL
User since
2004-03-22
5697
Artikel
ModeratorIn + EditorIn
wie ich dir sagte beispieldaten sind heir hilfreicht und du sagtest auch nicht welches der scripte du gespeichert hast.
User since
2003-08-04
14371
Artikel
ModeratorIn
Starte das Skript aus der DOS-Box heraus und teile uns dann die Fehlermeldung mit...