![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| Multuple encontrar duplicados de los archivos con 2 tipos diferentes de archivos | ricky007 | Programación de scripts de shell y | 2 | 03-04-2008 01:46 PM |
| Comparar / Diferencia entre los directorios y subdirectorios? | andylee80 | UNIX for Dummies Preguntas y Respuestas | 5 | 07-12-2007 10:45 AM |
| script para comparar archivos | pulse2india | Programación de scripts de shell y | 0 | 10-19-2005 05:32 PM |
| paquete perl directorios - ¿y si el guión es a la diferencia DIR contienen un *. pm? | gusla | Programación de scripts de shell y | 1 | 11-23-2004 08:32 PM |
| 2 archivos diferencia; diferencia de la salida al 3 de archivo | blt123 | Programación de scripts de shell y | 2 | 05-28-2002 12:29 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
comparar 2 coloum diferencia de 2 archivos con script de perl
Hola,
Soy nuevo en perl de secuencias de comandos .. Todavía estoy que learing .. Se me ha pedido que escriba una perl script que debería comparar 2 coloums de 2 archivos diferentes. si esos son los mismos 2 coloumn la secuencia de comandos debe almacenar la tanto la diferencia en 2 líneas de archivos. estos son archivos, archivo 1: 21767016 226112 char [] 19136520 797355 java.lang.String 17769368 307049 java.lang.Object [] 13981656 582569 Entrada $ java.util.HashMap 10867240 16650 int [] 9065616 559799 java.lang.String [] 9060192 79626 java.util.HashMap Entrada $ [] 6969384 23146 byte [] 6857664 285736 java.util.Vector archivo 2: 21702192 904258 java.lang.String 20985320 360561 java.lang.Object [] 20524112 209810 char [] 12623280 525970 Entrada $ java.util.HashMap 10945080 678896 java.lang.String [] 9781432 10871 int [] 8302464 345936 java.util.Vector 8107104 337796 netscape.ldap.util.RDN 7620024 68357 java.util.HashMap Entrada $ [] 6515152 52272 * ConstMethodKlass por lo que tengo que comparar 3 coloumn de estos archivos a 2, por ejemplo, tengo java.lang.String presente en los dos así que quiero sacar el script línea completa de los archivos en 2 diferentes archivos. Estos 2 archivos son archivos de gran tamaño. por favor me indican cómo se puede hacer. algunos han sugerido que uno puede usar la tabla hash aplicación. gracias, Vasuki |
|
||||
|
Pruebe esta quizás (no probado): Código:
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
|
|
||||
|
Y aquí es (aproximadamente) en el mismo Perl: Código:
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
Esto no es muy idiomáticas Perl, Sino que debe esperar ser suficiente para empezar. Con el engaño $ n y ARGV es simular el awk NR \u003d\u003d FNR idioma. El EF Lo más importante es restablecer el número de líneas en $. cuando el archivo de los cambios, ver la EF documentación para una breve discusión. Por cierto, $ 3 en 6515152 52272 * ConstMethodKlass es justo "*" - tal vez usted quiera normalizar que, en lugar de cambiar el guión. |
|
||||
|
si no está seguro de entender correctamente su pregunta. De todos modos, espero más adelante se puede hacer algo de sentido común. Código:
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);
|
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|