cómo eliminar texto a partir de la línea hasta la línea pattern1 antes pattern2? - Los Foros UNIX y Linux
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
Eliminar archivo de texto en línea Berserk UNIX for Dummies Preguntas y Respuestas 6 12-16-2008 03:44 PM
cómo eliminar la línea con el texto y se pongan en venta inmediatamente después de la línea orahi001 UNIX for Dummies Preguntas y Respuestas 6 01-15-2008 12:34 AM
Eliminar primera línea de cualquier archivo de texto? aungomarin Programación de scripts de shell y 5 05-16-2006 10:42 PM
eliminar una línea basada en primer carácter de la línea borncrazy UNIX for Dummies Preguntas y Respuestas 2 12-06-2005 03:27 PM
borrar la última línea del archivo de texto hcclnoodles Programación de scripts de shell y 4 06-25-2002 10:52 AM

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 04-13-2008
repudi8or repudi8or is offline
Usuario Registrado
  
 

Fecha: abril 2008
Puestos: 11
cómo eliminar texto a partir de la línea hasta la línea pattern1 antes pattern2?

Mis datos son xml'ish (aquí es un extracto): --

<bag name\u003d"mybag1" version\u003d"1.0"/>
<contents id\u003d"coins"/>
<bag name\u003d"mybag2" version\u003d"1.1"/>
<contents id\u003d"clothes"/>
<contents id\u003d"shoes"/>
<bag name\u003d"mybag3" version\u003d"1.6"/>

Quiero borrar la línea que contiene y su posterior mybag2 contenido (número de líneas de contenido puede variar). Así pues, quiero borrar de patrón mybag2 hasta (pero sin incluir) el próximo "bolsa de nombre" y se traduce en la etiqueta: --

<bag name\u003d"mybag1" version\u003d"1.0"/>
<contents id\u003d"coins"/>
<bag name\u003d"mybag3" version\u003d"1.6"/>

He tratado este algunos con formas diferentes sed y awk y todavía tienen que encontrar una solución. Cualquier ayuda sería apreciada.
  #2 (Enlace permanente)  
Old 04-13-2008
kholostoi kholostoi is offline
Usuario Registrado
  
 

Fecha: marzo 2008
Publicaciones: 6
Esta es mi solución:

--------- archivo: awk_tets --------------
BEGIN (bandera \u003d 0)
/ ^ <bolsa name \u003d "mybag2" / bandera \u003d (1)
/ ^ <bolsa name \u003d "mybag3" / bandera \u003d (0)
(If (bandera \u003d\u003d 0) (print;))
---------------------------------------

en línea de comandos: $ awk-f awk_test your_data_file> resultado

Vamos a intentarlo
  #3 (Enlace permanente)  
Old 04-14-2008
robsonde robsonde is offline
Usuario Registrado
  
 

Fecha: diciembre 2007
Puestos: 162
Cita:
Publicado originalmente por kholostoi View Post
Esta es mi solución:

--------- archivo: awk_tets --------------
BEGIN (bandera \u003d 0)
/ ^ <bolsa name \u003d "mybag2" / bandera \u003d (1)
/ ^ <bolsa name \u003d "mybag3" / bandera \u003d (0)
(If (bandera \u003d\u003d 0) (print;))
---------------------------------------

en línea de comandos: $ awk-f awk_test your_data_file> resultado

Vamos a intentarlo
Esto es lo que yo tenía en mente también, el problema es que es posible que no handel anidados CESES muy bien .....
  #4 (Enlace permanente)  
Old 04-14-2008
repudi8or repudi8or is offline
Usuario Registrado
  
 

Fecha: abril 2008
Puestos: 11
He intentado que la solución: --

me @ miServidor $ nawk 'BEGIN (bandera \u003d 0) / ^ <bolsa name \u003d "mybag2" / bandera \u003d (1) / ^ <bolsa name \u003d "mybag3" / bandera \u003d (0) (if (bandera \u003d\u003d 0) (print;)) 'test2

<bag name\u003d"mybag1" version\u003d"1.0"/>
<contents id\u003d"coins"/>
<bag name\u003d"mybag3" version\u003d"1.6"/>

Funciona, pero la cuestión es que el segundo nombre de la bolsa podría ser cualquier valor, no es específicamente "mybag3", por lo que el segundo patrón debe ser el más genérico "/ ^ bolsa de nombre \u003d /

Así que también he intentado: --

me @ miServidor $ nawk 'BEGIN (bandera \u003d 0) / ^ <bolsa name \u003d "mybag2" / bandera \u003d (1) / ^ <name \u003d bolsa / bandera \u003d (0) (if (bandera \u003d\u003d 0) (print; )) 'test2

<bag name\u003d"mybag1" version\u003d"1.0"/>
<contents id\u003d"coins"/>
<bag name\u003d"mybag2" version\u003d"1.1"/>
<contents id\u003d"clothes"/>
<contents id\u003d"shoes"/>
<bag name\u003d"mybag3" version\u003d"1.6"/>

que no, porque la bandera se restablece inmediatamente después que se estableció como el patrón más genérica también la altura de las mybag2 línea.

Luego pasé el orden y la pauta BINGO!

me @ miServidor $ nawk 'BEGIN (bandera \u003d 0) / ^ <name \u003d bolsa / bandera \u003d (0) / ^ <bolsa name \u003d "mybag2" / bandera \u003d (1) (if (bandera \u003d\u003d 0) (print; )) 'test2 <bolsa

name \u003d "mybag1" version \u003d "1.0" />
<contents id\u003d"coins"/>
<bag name\u003d"mybag3" version\u003d"1.6"/>

Muchas gracias por mi líder en la dirección correcta kholostoi
  #5 (Enlace permanente)  
Old 04-14-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
adicto
  
 

Fecha: enero 2007
Ubicación: Варна, България / Milán, Italia
Mensajes: 2.892
O:

Código:
awk '/^<bag name=/{f=0}$0~v{f=1}!f' v="mybag2" file
Uso o nawk / usr/xpg4/bin/awk en Solaris.
  #6 (Enlace permanente)  
Old 04-15-2008
repudi8or repudi8or is offline
Usuario Registrado
  
 

Fecha: abril 2008
Puestos: 11
mucho más elegante, gracias radoulov

Voy a utilizar ese
Closed Thread

Marcadores

Etiquetas
sed suprimir línea, solaris

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 09:07 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