Thread Hilfe für Regex
(21 answers)
Opened by lousek at 2011-08-06 17:24
Er arbeitet mit Verzeichnispfaden soweit ich es sehe.
also: Code (perl): (dl
)
1 2 3 4 5 while ($diff->Next()) { next if $diff->Same(); push @db, grep{ substr($_,0,1) eq '/' }$diff->Items(2); # hinzugekommen push @fs, grep{ substr($_,0,1) eq '/' }$diff->Items(1); # weggefallen } Und wo wir gerade von alternativen reden, Wenn es wirklich Verzeichnisse sind, ist es besser einen Hash zum vergleichen zu benutzen, denn ich wäre mir nicht sicher, ob die Pfade immer an der selben Stelle stehen. Selbst wenn man die Liste vorher sortiert, kann es sein, dass es falsche Funde gibt. Das wäre diesbezüglich mein Vorschlag. Code (perl): (dl
)
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 #!/usr/bin/perl use strict; use warnings; use Tie::File; tie my @x, "Tie::File", $ARGV[0] or die $!; tie my @y, "Tie::File", $ARGV[1] or die $!; my %diff; for(@x) { $diff{$_}{x}++ if(substr($_,0,1) eq '/'); } for(@y) { $diff{$_}{y}++ if(substr($_,0,1) eq '/'); } my (@db, @fs); for my $path (sort keys(%diff)) { my $elm=$diff{$path}; next if($elm->{x} && $elm->{y}) push(@db,$path) if($elm->{x}); push(@fs,$path) if($elm->{y}); } foreach my $dbitem (@db) { print $dbitem, "\n"; } foreach my $fsitem (@fs) { print $fsitem, "\n"; } |