The UNIX and Linux Forums  
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



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
de comparación de archivos ... ayuda necesaria. er_ashu UNIX for Dummies Preguntas y Respuestas 4 05-15-2008 09:37 PM
Comparación de archivos de Unix y Windows sysytem localp UNIX for Dummies Preguntas y Respuestas 1 04-11-2008 04:02 AM
Formato de salida - la comparación con el I / p archivo velappangs Programación de scripts de shell y 1 04-03-2008 06:31 AM
de comparación de archivos script tiger99 Programación de scripts de shell y 1 01-30-2008 10:47 AM
Comparación del tiempo de archivo de la pregunta pc9456 UNIX para usuarios avanzados y expertos 2 07-23-2003 03:05 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 01-02-2008
net_shree net_shree is offline
Usuario Registrado
  
 

Fecha: diciembre 2007
Puestos: 8
Comparación de archivos

Tengo que comparar dos archivos de texto, muy pocas de las líneas en estos archivos tendrán algunas diferencias en algunos columna.
El tamaño de los archivos es en GB.
Muestra las líneas son las siguientes:
11111122222222333333aaaaaaaaaabbbbbbbbbccccccccdddddd
11111122222222333333aaaaaaaaaabbbbbbbbbccccccccddeddd

Así pues, suponiendo que estas dos líneas son de archivo1 y archivo2, respectivamente, que debería obtener el segundo archivo en línea de un nuevo archivo de salida que es la diferencia archivo.

Lo que me gustaría hacer es leer línea 1 de archivo1 y bucle a través de todas las líneas en archivo2 y se detendrá cuando se encuentra una coincidencia, más que la línea de impresión a archivo de salida. Y repita los mismos pasos para todas las líneas de archivo1.

Apreciamos cualquier ayuda en este sentido.
  #2 (Enlace permanente)  
Old 01-02-2008
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Fecha: febrero 2004
Ubicación: NM
Mensajes: 5.759
¿Qué quiere decir con "stop cuando se encuentra una coincidencia", y después de leer más de archivo1 ....
¿Quieres que el número de línea? Parar a menudo significa leer para salir del bucle.
  #3 (Enlace permanente)  
Old 01-02-2008
net_shree net_shree is offline
Usuario Registrado
  
 

Fecha: diciembre 2007
Puestos: 8
Sí, quiero leer para salir del bucle cuando se encuentra una coincidencia, no quiero nada más para comprobar esa línea.
N No necesito el número de línea.
  #4 (Enlace permanente)  
Old 01-02-2008
dislusive dislusive is offline
Usuario Registrado
  
 

Fecha: enero 2008
Lugar: Pittsburgh, PA
Publicaciones: 2
Si he entendido lo que estamos tratando de hacer correctamente, aquí encontrarás una breve secuencia de comandos bash.

Código:
#!/bin/bash

compareFile = "/path/to/file/to/compare.txt"
outputFile = "/path/to/outputFile.txt"

for filename in /some/dir/of/text/files/*.txt; do 
        
        numlines=`cat $filename | wc -l`
                
        for i in `seq 1 $numlines`; do 
                current=`cat $filename | head -$i | tail -1` 
 
                grep -q "${current}" ${compareFile} 
 
                if [ $? != 0 ]; then
                         #doesn't exist, append to $outputFile
                        echo "${filename}:${current}" >> ${outputFile} 
                fi
        done 
done
  #5 (Enlace permanente)  
Old 01-02-2008
net_shree net_shree is offline
Usuario Registrado
  
 

Fecha: diciembre 2007
Puestos: 8
Hola, Gracias por la rápida solución y se ve más o menos lo que quiero.
Pero no estoy en condiciones de ejecutar este script, utilizo ksh.
Uno de los errores es "siguientes: command not found"
  #6 (Enlace permanente)  
Old 01-02-2008
dislusive dislusive is offline
Usuario Registrado
  
 

Fecha: enero 2008
Lugar: Pittsburgh, PA
Publicaciones: 2
que siguientes (por lo general reside en / usr / bin /)

Es una persona de comandos ejecutables, debe ser parte de la coreutils paquete si utilizas linux.

si es que existe en su sistema, modificar la secuencia de comandos
siguientes \u003d "/ ruta / al / siguientes"

para modificar la declaración de usar la variable: for i in `$ () siguientes ...
  #7 (Enlace permanente)  
Old 01-02-2008
ghostdog74 ghostdog74 is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: Sep 2006
Mensajes: 2.535
Cita:
Publicado originalmente por dislusive View Post
Si he entendido lo que estamos tratando de hacer correctamente, aquí encontrarás una breve secuencia de comandos bash.

Código:
#!/bin/bash

compareFile = "/path/to/file/to/compare.txt"
outputFile = "/path/to/outputFile.txt"

for filename in /some/dir/of/text/files/*.txt; do 
        
        numlines=`cat $filename | wc -l`
                
        for i in `seq 1 $numlines`; do 
                current=`cat $filename | head -$i | tail -1` 
 
                grep -q "${current}" ${compareFile} 
 
                if [ $? != 0 ]; then
                         #doesn't exist, append to $outputFile
                        echo "${filename}:${current}" >> ${outputFile} 
                fi
        done 
done
Como se ha mencionado por OP, los archivos están en GB. Creo que habrá algún desfase rendimiento. sólo una conjetura.
También siguientes no es un estándar en algunos SO * nix. Por lo tanto, si desea utilizar bucles que bucle más de un contador, un bucle while puede ser usado en su lugar. por ejemplo, mientras que [$ num-le $ numlines]
Closed Thread

Marcadores

Etiquetas
linux

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 08:07 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0