![]() |
|
|
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 |
| 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 |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
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. |
|
||||
|
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 ![]() |
|
||||
|
Cita:
|
|
||||
|
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 |
|
||||
|
mucho más elegante, gracias radoulov
Voy a utilizar ese |
![]() |
| Marcadores |
| Etiquetas |
| sed suprimir línea, solaris |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|