[eside-ghost] Procesar un archivo de texto
DAVID RODRIGUEZ TORRONTEGUI
dajon en euskalnet.net
Vie Ago 27 13:17:33 CEST 2004
Aupa,
Con Ksh venia a decir Korn Shell, muchas gracias por el script !!! sale
perfecto lo unico tenco una dudilla, si el archivo origen tiene 4
registros de 12 caracteres el tamaño deberia ser 12*4=48 bytes, no?
pues mi archivo ocupa 49, bueno no se dudas que tiene uno.
gracias y un saludo
David Rodriguez Torrontegui
dajon en euskalnet.net
----- Mensaje Original -----
De: =C1lvaro_Ur=EDa (Fermat) <fermat en movimage.com>
Fecha: Viernes, Agosto 27, 2004 12:31 am
Asunto: Re: [eside-ghost] Procesar un archivo de texto
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Aupa David,
>
> El Fri, 27 Aug 2004 11:19:31 +0200,
> DAVID RODRIGUEZ TORRONTEGUI escribió:
>
> // Aupa,
> //
> // Muchas gracias por la respuesta pero la maquina AIX 4.3 no
> tiene
> // instalado el perl, jeje la solución no me valdría, pero me temo
> que
> // habría que hacer un script parecido en ksh que con el awk solo
> no
> // valdría.
>
> No tengo (ni idea de) ksh (instalado), pero por si es algo
> parecido a
> hacerlo en awk, sería:
>
> $ cat fichero
> 269300001234269000000011593000000000269300004567
> $ cat fichero | awk '{for(n=1; n<=length($0);n+=12){c=substr($0,n,12);
> if(c~/^2693/) printf c}}'
> 269300001234269300004567
>
> // De todas formas y si no es abusar, es que no tengo ni papa de
> perl, me
> // tocara algun dia pero de momento... me podrías explicar un poco
> el
> // script.
>
> Sí, sí.. que ayer contesté deprisa xq me iba.. :S
>
> //
> // perl -we 'while(<>){chomp;foreach (/\d{1,12}/gs){print
> if(/^2693/)}}// print"\n"'
> //
>
> Si lo separamos en varias líneas,
> >>>
> while (<>){ # es lo mismo que poner while(<STDIN>)
> # es ir cogiendo línea por línea todo lo que
viene
> # por la entrada estándar
> chomp; # quitamos el '\n' final (es lo mismo que chomp
($_);)
> foreach (/\d{1,12}/gs){ # si coinciden 12 caracteres
> # numéricos, lo pasamos a la
> # variable $_ (que representa el
> # último dato que llegó)
> # SE HACE de forma RECURSIVA (al
> # poner 'g' se lo decimos)
> # La 's' en /gs es para pasar
por
> # encima de los '\n', aunque en
> # este caso podríamos quitarlo
> print if(/^2693/) # Mira si $_ empieza
por '2693' y
> # si es así, escribe $_ por
> # pantalla.
> # 'print;' es lo mismo que
> # 'print $_;'
> }
> }
> print "\n"; # salto de línea :O
> <<<
>
> // Un saludo y gracias por la ayuda.
>
> No hay de qué ;-)
>
> <salu2/>
> - --
> ,--.
> | oo| wget -O - fermat.movimage.com/fermat.asc | gpg --import
> | ~~| Key FingerPrint = 02C3 E5E5 2283 D08F 506C 3070 4713 40EF
> 21C5 21E2
> |/\/\|
> |_[#] No hay cosa más satisfactoria que el que alguien te
> dispare, y falle.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.5 (GNU/Linux)
>
> iD8DBQFBLw1wRxNA7yHFIeIRAqaJAJ42+EX6E4KxVijmg+KRY+CJffZ9dQCfaaZy
> QfRX1mIvRiImc7PfJG4gdKo=
> =j4iW
> -----END PGP SIGNATURE-----
>
------------ próxima parte ------------
_______________________________________________
eside-ghost mailing list
eside-ghost en deusto.es
https://listas.deusto.es/mailman/listinfo/eside-ghost
Más información sobre la lista de distribución eside-ghost