🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #313

Re: ¿Como cortar una expresion regular?

#313
From: Pascal J. Bourguignon
Date: Wed, 03 Jun 2009 07:45
69 lines
3485 bytes
Bypper <bypper@microsoft.com> writes:

> Buenas:
>
> Tengo un fichero con lineas de este tipo:
>
> "13/12/2006";"COMPRA T.C. EL CORTE
> INGLES";"13/12/2006";"-37";"1.2e+03";"-6.2e+03";"2e+05";;"0";"-37"
>
> Y algunas lineas de este tipo:
>
> ;"febrero";"2811.5";"-4155.07";"-1343.57";"831.229999999999"

�Oy! �Qu� rico!  :-)


> ;"febrero";"0"
> ;"marzo"
> ^L
>
> etc.
>
> bien, el caso es que las del 2� tipo las quiero desechar y procesar
> unicamente las del primero.

Bien.  Comparemos:

"13/12/2006";"COMPRA T.C. EL CORTE INGLES";"13/12/2006";"-37";"1.2e+03";"-6.2e+03";"2e+05";;"0";"-37"
;"febrero";"2811.5";"-4155.07";"-1343.57";"831.229999999999"

"...
;...

Entonces para descartar las segundas, basta hacer:

   grep -v -e '^;' < movimientos.csv
   # o egrep -v, es igual.


> Esto lo estoy haciendo procesando las lineas y filtrandolas con egrep
> y una expresi�n regular, tal que as�:
>
> | egrep ^\"[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9]\";
>
> de esta manera, extraigo unicamente las que empiezan con una fecha,
> como est� en el ejemplo, hasta ahi bien, 

Vale.


> el problema es que hay alguna
> linea como esta:
>
> "27/05/2008";"RECIBO ** PELAYO MUTUA D";"27/05/2008";"-345.48";"608.96";;;;"0";"-345.48"
>
> y ahi, la expresi�n regular coge los asteriscos y me muestra todos los
> ficheros del directorio actual, y mi pregunta es obvia:
>
> �como puedo evitar que procese los caracteres que siguen a mi
> expresion regular y as� evitar este problema?

Si no haces tonterias, no deberia occurir.  Pero no nos muestras lo
que haces realmente, qu� comando das, asi que no podemos decir nada.

Los asteriscos son en un archivos, no hay manera si no haces algo muy
particular, para que el shell los interprete de ningun manera.

-- 
__Pascal Bourguignon__
Technical Details
Message-ID: <87bpp5g3q8.fsf@galatea.local>
Path: arc1-ca.pugleaf.net!g2news2.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.straub-nv.de!feeder.erje.net!proxad.net!feeder1-2.proxad.net!cleanfeed1-b.proxad.net!nnrp9-2.free.fr!not-for-mail
References: <pjjhf6-dqd.ln1@apevia.bersol.sytes.net>

Show Full Headers
Complete Article Headers
X-Google-Thread: 646d03421f,179545d58d4c0ab7
X-Google-Attributes: gid646d03421f,public,usenet
X-Google-NewGroupId: yes
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news2.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.straub-nv.de!feeder.erje.net!proxad.net!feeder1-2.proxad.net!cleanfeed1-b.proxad.net!nnrp9-2.free.fr!not-for-mail
Newsgroups: es.comp.os.linux.programacion
Subject: Re: ¿Como cortar una expresion regular?
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA
      oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9
      033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac
      l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR
      mV+hO/VvFAAAAABJRU5ErkJggg==
X-Accept-Language:         fr, es, en
X-Disabled: X-No-Archive: no
References: <pjjhf6-dqd.ln1@apevia.bersol.sytes.net>
From: pjb@informatimago.com (Pascal J. Bourguignon)
Date: Wed, 03 Jun 2009 09:45:35 +0200
Message-ID: <87bpp5g3q8.fsf@galatea.local>
Organization: Informatimago
User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.3 (darwin)
Cancel-Lock: sha1:NmYyMzhhNjFkZDhkZDAzYmYyZGUxZDEzNDhkNzQwNGNjZjRiYTg1MA==
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Lines: 69
NNTP-Posting-Date: 03 Jun 2009 09:45:37 MEST
NNTP-Posting-Host: 88.182.134.169
X-Trace: 1244015137 news-2.free.fr 29600 88.182.134.169:61611
X-Complaints-To: abuse@proxad.net