hi,
ich habe folgendes script
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
#!/usr/bin/perl
#Search for bookmarks.html and print only the user added content
use strict;
use warnings;
use File::Find;
if (@ARGV){
print "\\\\server\\profile\\$ARGV[0]\\Anwendungsdaten\\MozillaOLD\\Profiles\n";
my $dir = ("\\\\server\\profile\\$ARGV[0]\\Anwendungsdaten\\MozillaOLD\\Profiles");
my $datei = 'bookmarks.html';
my $pfad = find(\&wanted, $dir);
sub wanted {
return unless ( $File::Find::name =~ $datei);
$File::Find::name =~ s/\//\\/g;
my @erer = $File::Find::name . "\n";
open D, $erer[0] || die "geht nich";
my @dat = <D>;
my $dataz = (scalar @dat) -1;
my $start = 21;
my $check = "</DL><p>\n";
if ($dat[$start] eq $check) {
$start = $start;
} else {
mach was;
}
# DEBUG:
# print @dat[$start...$dataz];
print "\n";
open(N, ">>C:\\WINNT5\\Profiles\\$ARGV[0]\\Anwendungsdaten\\Mozilla\\Firefox\\Profiles\\erdgasschwaben.default\\bookmarks.html") ||die "geht nich";
print N @dat[$start...$dataz];
close N;
}
} else {
print "Parameter angeben\n";
}
exit;
nun habe ich aber probleme mit ein paar bookmark files welche eben nicht erst ab zeile 21 benutzerspezifische inhalte haben.
eine regeln dazu könnte lauten die datei auslesen und die daten erst ab einer zeile wie "</DL></p>" in das array schreiben. dieses wird dann später wieder an die vorbereitete datei angehängt. mein bisheriges konstrukt mit if ($dat[$start] eq $check)... funktioniert irgendwie nicht.
bin für jede hilfe dankbar... sorry - ich bin absoluter perl anfänger...
ist das skripts sonst soweit ok ?
vielen dank
gruß tobi