The UNIX and Linux Forums  

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
modificar un patrón particular a partir de la segunda línea del patrón de búsqueda IMAS UNIX for Dummies Preguntas y Respuestas 1 10-12-2008 02:19 PM
modificar un patrón particular a partir de la segunda línea del patrón de búsqueda IMAS UNIX for Dummies Preguntas y Respuestas 2 10-12-2008 12:30 PM
¿Cómo se puede eliminar registros en un archivo se pongan en venta un patrón? mode09 UNIX for Dummies Preguntas y Respuestas 2 07-15-2008 02:53 PM
excluir columnas con una línea de modelo se pongan en venta greptastic UNIX for Dummies Preguntas y Respuestas 5 06-30-2008 04:32 AM
Multile Patrón de Búsqueda en una misma línea y eliminar sasree76 Programación de scripts de shell y 2 04-16-2008 03:12 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 10-12-2008
IMAS imas is offline
Usuario Registrado
  
 

Fecha: noviembre 2007
Puestos: 15
comentario / eliminar un patrón particular a partir de la segunda línea de un patrón de coincidencia

Hola,

Tengo el archivo 1.txt con entradas siguientes como se muestra:

0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
**
**
**

En el archivo 2.txt tengo las siguientes entradas, como se muestra:

0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
0789456 | 332211 | 10.20.30.40 | 078945633
1234567 | 225522 | 10.20.30.50 | 123456733
0321654 | 999999 | 10.20.30.40 | 032165433
0456123 | 777899 | 10.20.30.40 | 045612333
***
***
***

Quiero tomar la dirección IP de la columna y, a continuación, 1.txt búsqueda en 2.txt y comentar la entrada duplicada de la segunda modalidad corresponde.

es decir, necesito tener la siguiente salida en 2.txt como se muestra:

0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
# 0789456 | 332211 | 10.20.30.40 | 078945633
# 1234567 | 225522 | 10.20.30.50 | 123456733
# 0321654 | 999999 | 10.20.30.40 | 032165433
# 0456123 | 777899 | 10.20.30.40 | 045612333
***
***
***

A continuación se muestra la secuencia de comandos que he escrito, pero se comentarán todos los duplicados de las entradas:

i en `cat 1.txt | cut-d" | "-f3»
hacer
gato 2.txt |sed "s / ^ \ (.* \ | $ i \ |.*)/#/ g"> tmp.txt
mv tmp.txt 2.txt
hecho

¿Puede alguien me guía la manera de salir de la primera entrada duplicada intactas y comentarios y / o borrarlos de la segunda entrada duplicada y así sucesivamente.

Por favor, no cerrar este hilo si no sabe la respuesta.

Gracias
-IMAS
  #2 (Enlace permanente)  
Old 10-12-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Fecha: febrero 2007
Mensajes: 4.345
Cita:
Publicado originalmente por IMAS View Post
Por favor, no cerrar este hilo si no sabe la respuesta.
¿Se trata de un trabajo a domicilio pregunta?
Suponiendo que no lo es, ¿cuál es el problema del mundo real a tu pregunta?

Recuerdos
  #3 (Enlace permanente)  
Old 10-13-2008
IMAS imas is offline
Usuario Registrado
  
 

Fecha: noviembre 2007
Puestos: 15
Si su suposición es correcta y este es un problema del mundo real

¿Qué iam tratando de hacer es comentar el duplicado de la IP se encuentra en el archivo de texto haciendo caso omiso de la primera aparición que sea válido para una IP válida de mac y de la segunda aparición de comentar el duplicado a partir de direcciones IP en el punto de arranque de la línea.

1.txt archivo con las siguientes entradas como se muestra:

0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
**
**
**

2.txt archivo con las siguientes entradas como se muestra:

0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
0789456 | 332211 | 10.20.30.40 | 078945633
1234567 | 225522 | 10.20.30.50 | 123456733
0321654 | 999999 | 10.20.30.40 | 032165433
0456123 | 777899 | 10.20.30.40 | 045612333
***
***
***

i necesidad de contar con la siguiente salida en 2.txt como se muestra:

0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
# 0789456 | 332211 | 10.20.30.40 | 078945633
# 1234567 | 225522 | 10.20.30.50 | 123456733
# 0321654 | 999999 | 10.20.30.40 | 032165433
# 0456123 | 777899 | 10.20.30.40 | 045612333
***
***
***

La correcta secuencia de comandos que he escrito es

i en `cat 1.txt | cut-d" | "-f3»
hacer
gato 2.txt |sed "s / ^ \ (.* \ | $ i \ |.*)/# \ 1 / g"> tmp.txt
mv tmp.txt 2.txt
hecho

Pero por encima de la secuencia de comandos de todos los comentarios que se produzcan.

Su ayuda es apreciada.

Gracias
-IMAS
  #4 (Enlace permanente)  
Old 10-13-2008
summer_cherry summer_cherry is online now Forum Advisor  
Usuario Registrado
  
 

Fecha: junio 2007
Ubicación: Beijing China
Mensajes: 1.098
awk:


Código:
nawk 'BEGIN{FS="|"}
{
if(NR==FNR)
	a[$3]=0
else
{
	a[$3]++
	if(a[$3]>=2)
		print "#"$0
	else
		print $0
}
}' 1.txt 2.txt

  #5 (Enlace permanente)  
Old 10-13-2008
IMAS imas is offline
Usuario Registrado
  
 

Fecha: noviembre 2007
Puestos: 15
Hola Summer_Cherry,

Millones de gracias por darme la pieza de código que se comentarán a partir de la segunda aparición de patrón acompañado desde el comienzo de la línea.

intelsol2> cat 1.txt
0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
intelsol2> gato 2.txt
0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
0789456 | 332211 | 10.20.30.40 | 078945633
1234567 | 225522 | 10.20.30.50 | 123456733
0321654 | 999999 | 10.20.30.40 | 032165433
0456123 | 777899 | 10.20.30.40 | 045612333
intelsol2>
nawk 'BEGIN (FS \u003d"|"}
(
if (NR \u003d\u003d FNR)
un [$ 3] \u003d 0
algo más
(
un [$ 3] + +
si (a [$ 3]> \u003d 2)
print "#" $ 0
algo más
print $ 0
)
) '1.txt 2.txt> 3.txt
intelsol2> gato 3.txt
0152364 | 134444 | 10.20.30.40 | 015236433
0233654 | 122555 | 10.20.30.50 | 023365433
# 0789456 | 332211 | 10.20.30.40 | 078945633
# 1234567 | 225522 | 10.20.30.50 | 123456733
# 0321654 | 999999 | 10.20.30.40 | 032165433
# 0456123 | 777899 | 10.20.30.40 | 045612333
intelsol2>

También muchas gracias unix foro para chicos "que PPL roca!"

FYI, yo estaba tratando de buscar este código, ya que todos los fines de semana y fue a través de sed manual "http://www.grymoire.com/Unix/Sed. html "sub tema (/ 1, / 2, etc Especificar que ocurrencia) fue, sin embargo, la mala suerte en tratar todos los métodos de ensayo y error.

Verano también ¿podría explicarme el código que han escrito para que yo pueda entender de mejor manera.

Una vez más muchas gracias y se puede cerrar este hilo.

Gracias
-IMAS
Closed Thread

Marcadores

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 06:09 AM.


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