Schrift
[thread]7990[/thread]

zwei files vergleichen

Leser: 1


<< >> 6 Einträge, 1 Seite
Relais
 2006-05-10 16:00
#66218 #66218
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ohne dabei viel Aufwand betreiben zu wollen, würde ich in den Dokumentationen von CPAN:Diff nachlesen, ob schon ein netter Mensch das einfach realisierbar gemacht hat.

... hmm, mehr so in Richtung

CPAN:Text::Diff und CPAN:Algorithm::Diff

edit: Typo.\n\n

<!--EDIT|Relais|1147262513-->
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Dubu
 2006-05-17 18:21
#66219 #66219
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Geht es jetzt um diff oder um (f)grep in Perl?
pq
 2006-05-17 19:32
#66220 #66220
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
was hat das eigentlich mit CGI zu tun? *verschieb*
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Argon
 2006-05-10 13:34
#66221 #66221
User since
2005-10-13
4 Artikel
BenutzerIn
[default_avatar]
hallo alle zusammen,
wie kann ich ich fgrep -f file1 file2 unter perl realisieren.
es sollte zwei files verglichen werden die gleichen zeilen sollen ausgegeben werden.

file1 hat als Inhalt die unteren zeilen
a/(
b/(
a /(
b /(

file 2
xxxxx yyyyy ffff gsd a/(
sdsd yyyyy yfs sd a/(

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@liste1=("");
open(stream,"<file1");
while (<stream>)
{
  push(@liste1,$_);
}
close (stream);

foreach $var1(@liste1)
{
  foreach  $var2(@liste2)
                     {
                           if ($var2=~/var1/)
                            {
                                print "die zeilen sind gleich";
                             }
                     }
}


edit pq: code-tags hinzugefügt\n\n

<!--EDIT|pq|1147262563-->
docsnyder
 2006-05-17 17:28
#66222 #66222
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
Nebenbei ist das, was Dein Programm macht nicht das, was diff macht.

Nach Deinem Code wären die Dateien mit dem Inhalt
Code: (dl )
1
2
bla bla bla
nochmal bla

und
Code: (dl )
1
2
nochmal bla
bla bla bla

gleich, denn Du matchst jede Zeile von file1 mit jeder Zeile von file2 (wobei es hier ein "eq" auch tun würde und viel schneller ist).

Dann solltest Du auch "/$var1/" statt "/var1" schreiben.

Darüber hinaus ist der Algorithmus von diff weitaus komplexer ;o)

Nur so als Tipp!

Gruß, Doc
renee
 2006-05-17 18:52
#66223 #66223
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Laut Argon geht es um fgrep...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 6 Einträge, 1 Seite



View all threads created 2006-05-10 16:00.