Article View: es.comp.os.linux.programacion
Article #237Re: sustituir caracteres
From: Gonzalo Pérez de Olaguer Córdoba
Date: Mon, 22 Feb 2010 20:47
Date: Mon, 22 Feb 2010 20:47
75 lines
4050 bytes
4050 bytes
Hola jose maria <letrados@usernix.org> el Mon, 22 Feb 2010 21:07:58 +0100 escribiste: > * Obtengo un listado gigantesco de la forma siguiente > ls -1Q -I undel /media/cluster1/trash > fichero.tx > > * Es de un directorio de cuarentena de un cluster, por lo que tiene > caracteres especiales, inodos y datos que he de substituir por una ruta > correcta a los puntos de montaje reales y me estoy haciendo un lio con cut, > sed, tr, etc, al final estoy produciendo 3 ficheros intermedios y al ultimo > le he de aplicar a todas las lineas un comando, se ejecuta con bash y cron, > no doy con la tecla de algo decente, me da igual el lenguaje. > > * Las lineas recibidas son de este estilo. > "0000190E|ftp01|CBR101031|eb|copia server enjul|copia server" > "0000851B|ftp01|CBR101265|eb|Copia BBDD Sql server|Copia BBDD Sql > server_20100217_2305.zip.z021.pgp" > "00008551|ftp01|CBR101265|eb|Copia Documentos|Copia > Documentos_20100219_1900.zip.z220.pgp" > "00008554|ftp01|CBR101270|eb|dirs.dat.pgp" > "00008558|ftp01|CBR101270|eb|repair.rep" > "00008596|ftp01|CBR101331|eb|dirs.dat.pgp" > "002CBCFF|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091002_2216.txt" > "002CBD00|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091003_2204.txt" > "002CBD01|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091004_2208.txt" > "002CBD02|ftp03|CBR101321|eb|Datos7 19.02.2010 07.12|log_20091005_2250.txt" > > * ignorese el salto de linea, el entrecomillado es una linea completa. > > * Y debo de producir un resultado final como este y aplicarle un comando a > cada linea. > > "/media/cluster1/ftp01/CBR101031/copia server enjul/copia server" > "/media/cluster1/ftp03/CBR101321/eb/Datos7 19.02.2010 > 07.12/log_20091005_2250.txt" > > * Primero con tr substituyo los | por / , despues con cut busco el primer > separador / , y por ultimo substituyo la cadena anterior al separador por > "/media/cluster1/ y aplico el comando, en fin un lio y todo esto a traves > de cron. esto lo puedes hacer más fácil con sed: sed -e 's=^([^/]+)="/media/cluster1=' > * Nota: Lo habitual es que sean unas 700.000.- lineas, no me importa el > tiempo de ejecucion, si no que no produzca fallos con los espacios y demas. Si sĂłlo has de hacer estos dos cambios que explicas aquĂ, y luego aplicar un comando a cada lĂnea, tendrĂas algo asĂ: cat fichero_original | tr \| / | sed ... | xargs -1 comando Lo digo de memoria. TĂş sabrás mejor que yo quĂ© es exactamente lo que quieres hacer. Pero esa secuencia será bastante rápida de ejecutar. Si quieres un Ăşnico ejecutable, lo harás bien con perl. -- Gonzalo PĂ©rez de Olaguer CĂłrdoba <gpoc@iies.es> --- www.gpoc.es PGP key 2861C704 --- F206 5671 6789 425D 111C 1302 214F 1934 2861 C704
Technical Details
Message-ID:
<20100222214740.4a8d9519@petres.salonet.snet>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!proxad.net!feeder1-2.proxad.net!newsfeed.straub-nv.de!news.antakira.com!cagarruta.escomposlinux.org!escomposlinux.org!not-for-mailReferences:
<hluo6u$e3j$1@speranza.aioe.org>Show Full Headers
Complete Article Headers
X-Google-Thread: 646d03421f,7f533009afd47089 X-Google-Attributes: gid646d03421f,public,usenet X-Google-NewGroupId: yes X-Google-Language: SPANISH,UTF8 Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!proxad.net!feeder1-2.proxad.net!newsfeed.straub-nv.de!news.antakira.com!cagarruta.escomposlinux.org!escomposlinux.org!not-for-mail From: Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es> Newsgroups: es.comp.os.linux.programacion Subject: Re: sustituir caracteres Date: Mon, 22 Feb 2010 21:47:40 +0100 Organization: escomposlinux.org Lines: 76 Message-ID: <20100222214740.4a8d9519@petres.salonet.snet> References: <hluo6u$e3j$1@speranza.aioe.org> NNTP-Posting-Host: 84.77.244.205 Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: cagarruta.escomposlinux.org 1266871663 2172 84.77.244.205 (22 Feb 2010 20:47:43 GMT) X-Complaints-To: aherrerm@escomposlinux.org NNTP-Posting-Date: Mon, 22 Feb 2010 20:47:43 +0000 (UTC) X-Newsreader: Claws Mail 3.5.0 (GTK+ 2.12.12; i486-pc-linux-gnu)