The UNIX and Linux Forums  


Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Vind multuple duplicaten van bestanden met 2 diff typen bestanden ricky007 Programmeren en Shell Scripting 2 03-04-2008 01:46 PM
Vergelijk / Verschil tussen mappen en submappen? andylee80 UNIX voor Dummies Questions & Answers 5 07-12-2007 10:45
script te vergelijken bestanden pulse2india Programmeren en Shell Scripting 0 10-19-2005 05:32 PM
perl-pakket directories - wat als het script is diff DIR aan de ene bevatten *. uur? gusla Programmeren en Shell Scripting 1 11-23-2004 08:32 PM
diff 2 bestanden; uitgang diff's 3e bestand blt123 Programmeren en Shell Scripting 2 05-28-2002 12:29

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 07-29-2008
vasuki vasuki is offline
Geregistreerde gebruiker
  
 

Join Date: juli 2008
Krabbels: 1
Vergelijk 2 coloum van 2 diff-bestanden met behulp van perl script

Hoi,

Ik ben nieuw voor perl scripting .. Ik ben nog steeds-leren zij .. Ik ben gevraagd om een perl script dat moet vergelijken 2 coloums van 2 verschillende bestanden. als die 2 coloumn dezelfde zijn het script moet slaan de beide lijnen in 2 diff-bestanden.

dit zijn bestanden,

bestand 1:
21767016 226112 char []
19136520 797355 java.lang.String
17769368 307049 java.lang.Object []
13981656 582569 java.util.HashMap $ entry
10867240 16650 int []
9065616 559799 java.lang.String []
9060192 79626 java.util.HashMap $ Entry []
6969384 23146 byte []
6857664 285736 java.util.Vector


bestand 2:
21702192 904258 java.lang.String
20985320 360561 java.lang.Object []
20524112 209810 char []
12623280 525970 java.util.HashMap $ entry
10945080 678896 java.lang.String []
9781432 10871 int []
8302464 345936 java.util.Vector
8107104 337796 netscape.ldap.util.RDN
7620024 68357 java.util.HashMap $ Entry []
6515152 52272 * ConstMethodKlass

dus ik heb tot op 3 coloumn van deze te vergelijken met 2 bestanden, bv ik heb java.lang.string in beide dus ik wil het script opslaan deze complete lijn van zowel de bestanden in 2 diff-bestanden. Deze 2 bestanden zijn grote bestanden.

please suggest me hoe dit kan worden gedaan. iemand had voorgesteld kunt u gebruik maken van de hash tabel uitvoering.

bedankt,
Vasuki
  #2 (permalink)  
Old 07-30-2008
Annihilannic Annihilannic is offline Forum Advisor  
  
 

Join Date: mei 2008
Locatie: Sydney, Australië
Berichten: 1009
Probeer dit misschien (niet getest):

Code:
awk '
    # load the contents of file1 into a hash indexed by $3
    NR==FNR { file1[$3]=$0; next }
    # check whether $3 in file2 is in the hash, if so, print bothlines to files
    $3 in file1 { print file1[$3] >> "file1.both"; print >> "file2.both" }
' file1 file2
  #3 (permalink)  
Old 07-30-2008
tijdperk era is offline Forum Advisor  
Herder van Nutteloze Cats (On Sabbatical)
  
 

Join Datum: maart 2008
Locatie: / er / is / alleen / bin / sh
Berichten: 3652
En hier is (ongeveer) hetzelfde in Perl:

Code:
perl -ane 'BEGIN { open FILE1, ">file1.both"; open FILE2, ">file2.both"; }
  if ($. == ++$n) { $h{$F[2]} = $_; close ARGV if eof; next; }
  if ($h{$F[2]}) { print FILE1 $h{$F[2]}; print FILE2; }' file1 file2
Dit is niet erg idiomatisch PerlMoet maar hopelijk genoeg zijn om je slag te gaan. Het bedrog met $ n en ARGV is de awk simuleren NM \u003d\u003d FNR idioom. De eof ding is naar lijn nummers opnieuw in $. wanneer het bestand verandert, zie het eof documentatie voor een korte discussie.

By the way, $ 3 in 6515152 52272 * ConstMethodKlass is gewoon "*" - misschien dat u wilt normaliseren dat, in plaats van het script.
  #4 (permalink)  
Old 07-30-2008
summer_cherry summer_cherry is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Jun 2007
Locatie: Beijing China
Berichten: 1.088
niet zeker of uw vraag goed begrijp.

Anyway, hoop onder een zekere zin kan maken.

Code:
open (FH,"<a");
while(<FH>){
	@arr=split(" ",$_);
	$hash{$arr[2]}=$_;
}
close(FH);
open (FH,"<b");
while(<FH>){
	@arr=split(" ",$_);
	if(exists($hash{$arr[2]})){
		print $hash{$arr[2]};
		print $_;
	}
}
close(FH);
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 01:52 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0