![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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 |
|
||||
|
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
|
|
||||
|
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
By the way, $ 3 in 6515152 52272 * ConstMethodKlass is gewoon "*" - misschien dat u wilt normaliseren dat, in plaats van het script. |
|
||||
|
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);
|
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|