Buenas, a ver si te puedo ayudar en algo... --- Javier_Viñuales_Gutiérrez <[EMAIL PROTECTED]> wrote: > Hola y ante todo perdón por el tema pues se sale de la temática de la lista > pero como se que aquí hay más de uno que domina el tema de las expresiones > regulares dejo mi questión. > > Veamos, necesito procesar todo un directorio de ficheros que contienen > N líneas tal que: > > etiqueta[espacios o tab]dato[espacios o tab]arg1 arg2 arg3 arg4 > > donde: etiqueta=[A-Z ó a-z][00-500]_[0-2000]['X' ó 'x' ó ''] > dato=número en coma flotante (xxx.xxxxxx) > argi= cadenas de caracteres > > y dejarlas tal que > > datos[espacios o tab]resultado > > con: dato=número en coma flotante del fichero de entrada > resultado= salida de la orden 'programa arg1 arg2 arg3 arg4' >
Por lo que veo el campo "etiqueta" no lo utilizas para nada ... > Me estoy empapando en regex y lo he intentado con 'sed' pero nada no soy > capaz y me corre cierta prisa. > > ¿Podría alguien ayudarme porfavor? > Muchas gracias. A ver, el codigo en PHP3 (es lo que domino yo) seria mas o menos asi: (El bucle para cada archivo y para cada linia curratelo tu) --------- $linia_entrada = "pepe1_800X 1.1001 hola que tal" // (correcto ?) ereg("(.*)\t(.*)\t(.*)\n", $linia_entrada, $res); // pillamos los tres campos // Ahora en $res tenemos $res[0] (linia completa) $res[1] primer campo ... etc // Ejecutamos el $PROGRAMA y guardamos el resultado en $salida exec("$PROGRAMA $res[3]", $salida); // Ya tenemos el resultado final $linia_salida = "$reg[2]\t$salida"; --------------- Esta hecho sobre papel. Ya se que PHP3 seguramente no lo habras tocado, pero es sencillo de entender. Falta leer del fichero entrada, hacer el bucle y escribir en la salida, pero eso supongo que ya lo sabras hacer. Suerte === . (O) See you, Nos vemos, Ens veiem a8888b. o <M http://www.doneval.speedhost.com d888888b. /| ...... /:M\----------------------------------- 8P"YP"Y88 (O)[]XXXXXX[]I:K+}=====< TOR NEC DONAVAM >========== 8|o||o|88 \| ^^^^^^ \:W/----------------------------------- 8' .88 o <W Microsoft gives you Windows ... 8`._.' Y8 (O) Linux gives you the whole house d/ `8b. __________________________________________________ Do You Yahoo!? Bid and sell for free at http://auctions.yahoo.com