![]() |
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.
|
|
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 |
| comparar archivos | prashanth.spl | Programación de scripts de shell y | 0 | 06-18-2008 04:22 PM |
| comparar archivos | danabo | Programación de scripts de shell y | 3 | 05-19-2008 12:09 PM |
| comparar dos archivos | charandevu | Programación de scripts de shell y | 7 | 03-30-2008 03:20 PM |
| Comparar dos archivos | Penfold | Programación de scripts de shell y | 3 | 04-28-2005 11:04 PM |
| comparar archivos y más allá | MizzGail | UNIX for Dummies Preguntas y Respuestas | 2 | 04-25-2003 01:34 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Comparar dos archivos
Tengo que comparar dos archivos:
Básicamente, tengo un archivo de entrada Filea. que hay que comparar con fileB localizados en / etc / lc / mbd directroy Tanto el formato de archivo es como: abc01def: 10.80.11.123 El formato de archivo de entrada es: abc01mns: 10.80.11.1 dbc02mns: 10.80.11.2 fbc01mns: 10.80.11.3 rbc01mns: 10.80.11.4 tbc01mps: 10.80.11.5 abt05mns: 10.80.11.6 zbc11mys: 10.80.11.7 ttc01mns: 10.80.11.8 hbc05mns: 10.80.11.9 qbc01mns: 10.80.11.10 Así que después de comparar la secuencia de comandos me dirá: lo que ha sido y lo que no dupicate duplicado. Gracias |
|
||||
|
Gracias.,
Este enfoque funciona, ¿qué cree usted que: #! / bin / ksh mientras que leer myline hacer cnt \u003d 0 mientras que leer línea hacer if [[ "$ myline" \u003d "$ line"]] entonces ((cnt + \u003d 1)) romper fi hecho <archivo1 if [[$ cnt-eq 0]] entonces echo "$ myline">> output.file fi hecho <archivo2 |
|
||||
|
Pero el problema aquí es si tengo suponer una línea adicional en cualquier archivo, éste no se compara. Sólo se compara con los números de línea exacta en cada archivo.
|
|
||||
|
puede intentar algo así como,
[No probado] Código:
awk 'BEGIN{ while ( getline < "file_1" ) { arr[$0]++ } }{ if ( $0 in arr ) { printf "%s is duplicate\n", $0 } }' file_2
|
|
||||
|
El comando diff, parece ideal para esto. En particular:
Código:
diff -y file1 file2 |
|
||||
|
Prueba de ello, el resultado se almacena en los archivos dup_file y no_dup_file:
Código:
awk 'NR==FNR{a[$0]=$0;next}
$0 in a {print $0 > "dup_file";next}
{print $0 > "no_dup_file"}
' fileA fileB
Recuerdos |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|