![]() |
|
|
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 |
| Agarra una menor y mayor valor | Raynon | Programación de scripts de shell y | 3 | 10-11-2007 07:23 AM |
| coger la línea usando awk | cdfd123 | Programación de scripts de shell y | 1 | 10-10-2007 09:21 AM |
| búsqueda y capturar datos de un archivo enorme | ting123 | UNIX for Dummies Preguntas y Respuestas | 1 | 06-06-2006 10:41 PM |
| Cómo concatenar dos cadenas o varias cadenas en una cadena en B-shell? | fontana | Programación de scripts de shell y | 2 | 08-26-2005 12:58 PM |
| Toma la forma de archivo de la última | n9ninchd | UNIX for Dummies Preguntas y Respuestas | 1 | 05-10-2001 05:31 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
¿Cómo se puede obtener datos entre 2 cadenas?
Hi All,
Tengo un archivo de texto a continuación. ¿Cómo capturar todos los datos entre "05T00NPQSMR1" y "****" usando awk? Por favor, tenga en cuenta que el texto no puede ser las líneas fijas y texto contenido es dinámico. Por favor ayuda. Gracias Que figura a continuación es mi código donde $ es mi LOT_SUFFIX del intérprete de comandos. awk'/'"$ LOT_SUFFIX "'/,/ bla / '$ nfile_selected Habida cuenta de los datos: bla xxx yyy ************************************************** ******** ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Muestra \u003d 100 0 ** \u003d Tasm MFMM xx xx xx ** \u003d MFMC TASC xx xx xx ************************************ xxxx yyy zzz bla bla ************************************************** ******** ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Muestra \u003d 100 0 ** \u003d Tasm MFMM xx xx xx ** \u003d MFMC TASC xx xx xx ************************************ Resultado esperado: ************************************************** ******** ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Muestra \u003d 100 0 ** \u003d Tasm MFMM xx xx xx ** \u003d MFMC TASC xx xx xx ************************************ xxxx yyy zzz bla bla ************************************ |
|
||||
|
Cita:
Salida: ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 |
|
||||
|
Alternativa en Python: Entrada: bla xxx yyy ************************************************** ******** ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Muestra \u003d 100 0 ** \u003d Tasm MFMM xx xx xx ** \u003d MFMC TASC xx xx xx ************************************ xxxx yyy zzz bla bla ************************************************** ******** ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Muestra \u003d 100 0 ** \u003d Tasm MFMM xx xx xx ** \u003d MFMC TASC xx xx xx ************************************ xxxasdfljsdlfx yyy; slkfd; s zzzsdklfjsd blasdflksdjh blajaspofkspodf Código:
number = []
all = open("test.txt").readlines()
for num,line in enumerate(all):
line = line.strip()
if "*" * 58 in line:
number.append(num)
for i in range(len(number)):
try:
print ''.join(all[ number[i]:number[i+1] ] )
except:
print ''.join(all[number[i]:])
Salida: ************************************************** ******** ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Muestra \u003d 100 0 ** \u003d Tasm MFMM xx xx xx ** \u003d MFMC TASC xx xx xx ************************************ xxxx yyy zzz bla bla ************************************************** ******** ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Muestra \u003d 100 0 ** \u003d Tasm MFMM xx xx xx ** \u003d MFMC TASC xx xx xx ************************************ xxxasdfljsdlfx yyy; slkfd; s zzzsdklfjsd blasdflksdjh blajaspofkspodf Última edición por ghostdog74; al 10-05-2006 04:34 AM.. |
|
||||
|
Código:
awk -v pat1="05T00NPQSMR1" -v pat2="^[*]{3,}" '$0~pat1,$0~pat2' awtest
Si necesita datos sólo hasta "** TASC" Código:
awk -v pat1="05T00NPQSMR1" -v pat2="^** tasC" '$0~pat1,$0~pat2' awtest |
|
||||
|
Cita:
Código:
sed -n '/05T00NPQSMR1/,/*\{58\}/p' input
donde 58 es la longitud de línea por encima de asterisco |
|
||||
|
Hola Anbu,
A continuación el código: awk-v pat1 \u003d "05T00NPQSMR1"-v pat2 \u003d"^[*]{ 3,) " '$ 0 ~ pat1, $ 0 ~ pat2' awtest Y Vish, A continuación el código: sed -n '/ 05T00NPQSMR1 /, / * \ (58 \) / p' de entrada Ambos productos son: ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Muestra \u003d 100 0 ** \u003d Tasm MFMM xx xx xx ** \u003d MFMC TASC xx xx xx ************************************ xxxx yyy zzz bla bla ************************************************** ******** ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Muestra \u003d 100 0 ** \u003d Tasm MFMM xx xx xx ** \u003d MFMC TASC xx xx xx ************************************ Pero lo que necesito es: ** 05T00NPQSMR1 P98P2234 Martes 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Muestra \u003d 100 0 ** \u003d Tasm MFMM xx xx xx ** \u003d MFMC TASC xx xx xx ************************************ xxxx yyy zzz bla bla Por favor ayuda. Gracias Última edición por Raynon; al 10-05-2006 04:21 AM.. |
![]() |
| Marcadores |
| Etiquetas |
| regex, expresiones regulares |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|