The UNIX and Linux Forums  
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.

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
nombre del archivo de transformación Vrms Programación de scripts de shell y 16 05-27-2008 09:49 AM
Transformación de color Idioma 1.4.1 (rama por defecto) iBOT Comunicados de prensa de Software - Noticias RSS 0 03-18-2008 08:10 AM
Evento de Servicios de transformación de iBOT Complejo de Procesamiento de Eventos Noticias RSS 0 08-24-2007 04:30 PM
Aplicar la lógica de transformación en 2 archivos diferentes HAA Programación de scripts de shell y 1 07-10-2007 05:33 AM
Transformación mayúscula Dark Angel UNIX for Dummies Preguntas y Respuestas 1 01-24-2002 04:17 PM

Reply
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 05-26-2009
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Usuario Registrado
  
 

Fecha: noviembre 2008
Lugar: diversos
Puestos: 188
Question transformación de texto o con sed awk

Hola,
Estoy tratando de extraer automáticamente las horas de apertura de un sitio web.
La página que muestra las listas se
http://www.natureetdecouvertes.com/p...sp?mag_cod\u003dxxx
con xxx pasando de 101 a 174
Logré obtener la siguiente salida:
Código:
      le lundi de 10.30  19.30
      le mardi de 9.30  19.30
blank
      le jeudi de 9.30  19.30
      le vendredi de 9.30  19.30
      le samedi de 10.30  21.30
blank
Hay una línea por cada día de la semana (de lunes a domingo)
blanco es una línea en blanco real (no muestra nada)
¿Cómo puedo conseguir ahora el resultado final:
Código:
"10:30 19:30|09:30 19:30|           |09:30 19:30|09:30 19:30|10:30 21:30|           "
Gracias por tu ayuda.
Santiago
  #2 (Enlace permanente)  
Old 05-26-2009
panyam panyam is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: Sep 2008
Puestos: 474
Código:
awk '{ printf("%s\t%s%s",$4,$6,"|")}' input_file.txt
  #3 (Enlace permanente)  
Old 05-26-2009
colemar colemar is offline
Usuario Registrado
  
 

Fecha: abril 2009
Lugar: Trento, Italia
Puestos: 116
Código:
awk -F'[^0-9]+' '{b=b (NR>1?"|":"")($2?sprintf("%02d:%02d %02d:%02d",$2,$3,$4,$5):"")}END{print b}' yourfile.txt
Si realmente quiere 11 espacios en blanco en lugar de un campo, entonces:

Código:
awk -F'[^0-9]+' '{b=b (NR>1?"|":"")($2?sprintf("%02d:%02d %02d:%02d",$2,$3,$4,$5):sprintf("%11s",""))}END{print b}' yourfile.txt

Última edición por colemar; al 05-26-2009 06:32 AM..
  #4 (Enlace permanente)  
Old 05-26-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: Sep 2006
Puestos: 2.538
si tiene Python, una solución alternativa casi lleno
Código:
 
#!/usr/bin/env python
import urllib2,re
pat=re.compile(""".*<span class="tdBlancBold">(.*)<div align="center">.*""",re.M|re.DOTALL)
days=['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche']
url="http://www.natureetdecouvertes.com/pages/gener/view_FO_STORE_corgen.asp?mag_cod=%s"
for num in range(101,174):
    page=urllib2.urlopen(url % str(num))    
    data=page.read()
    if not "Impossible" in data:
        result = pat.findall(data)       
        store={}
        for i in result:
            for j in i.split("<br>"):
                j=j.strip()
                if j.startswith("le"):
                    j=j.split()
                    if j[1] in days:
                        t1,t2=j[-3],j[-1]
                        store.setdefault(j[1],[])
                        store[j[1]].extend([t1,t2])
        for DAY in days:
            try:
                print "%s |" %( ' '.join(store[DAY])),
            except: 
                print "\t\t|",
        print ""    
    else:
        print "Page not found ",url % str(num)
extracto de salida:
Código:
# python test.py
10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 19.00 |
10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 |             |
10.00 20.00 | 10.00 20.00 | 10.00 20.00 |               | 10.00 21.00 | 10.00 20.00 |           |
10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 |             |
10.00 19.30 | 10.00 19.30 | 10.00 19.30 | 10.00 19.30 | 10.00 19.30 | 10.00 19.30 |             |
10.00 21.00 | 10.00 21.00 | 10.00 21.00 | 10.00 21.00 | 10.00 21.00 | 10.00 20.00 |             |
10.00 19.30 | 10.00 19.30 | 10.00 19.30 | 10.00 19.30 | 10.00 19.30 | 10.00 19.30 |             |
10.00 20.00 | 10.00 21.00 | 10.00 21.00 | 10.00 21.00 | 10.00 21.00 | 10.00 20.00 |             |
9.30 19.30 | 9.30 19.30 | 9.30 19.30 | 9.30 19.30 | 9.30 19.30 | 9.30 19.30 |           |
Page not found  http://www.natureetdecouvertes.com/pages/gener/view_FO_STORE_corgen.asp?mag_cod=110
10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 |             |
10.00 19.30 | 10.00 19.30 | 10.00 19.30 | 10.00 19.30 | 10.00 19.30 | 10.00 19.30 |             |
10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 |             |
10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 | 10.00 20.00 |             |
9.30 19.30 | 9.30 19.30 | 9.30 19.30 | 9.30 19.30 | 9.30 19.30 | 9.30 19.30 |           |
  #5 (Enlace permanente)  
Old 07-04-2009
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Usuario Registrado
  
 

Fecha: noviembre 2008
Lugar: diversos
Puestos: 188
Gracias a todos por su ayuda,
Parece que todas las tiendas de su calendario de pantalla utilizando un formato diferente, pero he venido con la siguiente solución que combina a la perfección todas las necesidades:

Código:
wget -qO- 'http://www.natureetdecouvertes.com/pages/gener/view_FO_STORE_corgen.asp?mag_cod=118' |
sed -rn 's/\r//g; s/<br>//; /^[[:space:]]*([Ll]e )?[Ll]undi/,/([Ll]e )?[Dd]imanche/ { ; /^[[:space:]]*$/!p }' |
sed -r 's/^[^0-9]*//; s/.*clipse totale.*/           /; s/ h /h/g; s/(à|de|-) //; s/\.|h/:/g; s/^9:/09:/; s/:( |$)/:00\1/g' |
sed ':a; N; $!b a; s/\n/|/g')'
Reply

Marcadores

Etiquetas
awk, sed

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 04:13 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