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