![]() |
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 |
| 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 |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
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. |
|
||||
|
¿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. |
|
||||
|
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. |
|
||||
|
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
|
|
||||
|
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" |
|
||||
|
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 ... |
|
||||
|
Cita:
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] |
![]() |
| Marcadores |
| Etiquetas |
| linux |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|