Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7792[/thread]

daten vergleichen

Leser: 2


<< |< 1 2 >| >> 16 Einträge, 2 Seiten
miki280
 2006-03-15 11:38
#63792 #63792
User since
2005-12-07
18 Artikel
BenutzerIn
[default_avatar]
hallo,

ich habe hier mal im Forum nach einer Lösung meines Problems gesucht aber leider nicht genau das, was ich brauche gefunden!
Ich möchte den Inhalt von fileA und fileB vergleichen und die Zeilen die NICHT in beiden vorkommen in fileC schreiben!

Alo das Gegestück vom dem was ich hier gefunden habe!

von Strat:
"zeilen ausgeben, die sowohl in Datei fileA und fileB vorkommen? Das geht auch als Einzeiler:"

perl -ne 'print if($seen{$_}.=@ARGV) =~ /10$/' fileA fileB > fileC

Meine Frage nun:
Wie kann man diese zeile so abändern das ich auf das gewünschte Ergebnis komme?

vielen Dank,
miki280
renee
 2006-03-15 13:00
#63793 #63793
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
muss es ein Einzeiler sein??
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/
miki280
 2006-03-15 13:06
#63794 #63794
User since
2005-12-07
18 Artikel
BenutzerIn
[default_avatar]
muß nicht ein einzeiler sein aber ich dachte mir man kann diese zeile leicht abändern!?? oder ist das so kompliziert? ich bin ein ziemlicher Perl newbie!
esskar
 2006-03-15 13:07
#63795 #63795
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
perl -ne 'print if($seen{$_}.=@ARGV) !~ /10$/' fileA fileB > fileC
renee
 2006-03-15 13:09
#63796 #63796
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nein, damit funktioniert es nicht, deswegen hatte ich gefragt...
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/
esskar
 2006-03-15 13:14
#63797 #63797
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=renee,15.03.2006, 12:09]Nein, damit funktioniert es nicht, deswegen hatte ich gefragt...[/quote]
so

Code: (dl )
perl -ne 'print unless($seen{$_}.=@ARGV) =~ /10$/' fileA fileB > fileC


(Erst posten, dann denken!) :)
renee
 2006-03-15 13:23
#63798 #63798
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Auch nicht... Weil die Dateien nacheinander eingelesen werden und die Auswertung "on the fly" gemacht wird. Wenn in beiden Dateien ein use strict steht, dann ist der Wert im Hash beim ersten Mal einlesen nur "1", wird also ausgegeben...
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/
miki280
 2006-03-15 13:28
#63799 #63799
User since
2005-12-07
18 Artikel
BenutzerIn
[default_avatar]
vielen dank, ich hab rumprobiert und ich glaub so gehts jetzt!

perl -ne 'print unless($seen{$_}.=@ARGV) != /10$/' fileA fileB > fileC
renee
 2006-03-15 13:29
#63800 #63800
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Grobes Gerüst:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

use strict;
use warnings;

my %seen;

while(<>){
$seen{$_} .= @ARGV;
}

for(keys(%seen)){
print if($_ !~ /10$/);
}


Evtl. kannst Du dort noch das Entfernen von führenden und angehängten Leerzeichen einbauen und ein chomp
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/
renee
 2006-03-15 13:32
#63801 #63801
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=miki280,15.03.2006, 12:28]vielen dank, ich hab rumprobiert und ich glaub so gehts jetzt!

perl -ne 'print unless($seen{$_}.=@ARGV) != /10$/' fileA fileB > fileC[/quote]
Das gibt Dir die Zeilen aus, die in fileB sind aber nicht in fileA. Aber es gibt Dir nicht aus, was in fileA aber nicht in fileB ist...
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/
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2006-03-15 11:38.