[eside-ghost] Procesar un archivo de texto
Álvaro Uría (Fermat)
fermat en movimage.com
Vie Ago 27 12:31:12 CEST 2004
-----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-----
Más información sobre la lista de distribución eside-ghost