[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: awk



Se me había pasado para estudiar awk usé [1] muy buena y actualizada 
bibliografía recomiendo a todos leer y aquellos que tienen alguna experencia 
con la programación van a chocar con algunos detallitos de awk.

[1] http://www.gnu.org/software/gawk/manual/gawk.html.gz

El Sábado, 23 de Diciembre de 2006 17:30, Javier Enrique Tiá Marín escribió:
> Hola Andrés:
>
> Desde hace un tiempo estaba por empezar aprender awk y me pareció
> interesante desde un principio hacerlo con tu inquietud. Después de un par
> de días de pruebas, llegué a este resultado:
>
> javier@backy:~/tmp/Linux_LPI$ echo "texto1 PRINCIPIO texto2 FIN texto3
> PRINCIPIO texto4 FIN texto5." | awk -f ripear_cadena.awk
> texto1
>  texto3
>  texto5.
>
>
> El código fuente [1] de ripear_cadena.awk si tienes alguna con el programa
> escribe. También puedes hacerle la mejoría que desees.
>
> Puedo comentarte que existen otras herramientas más potente que el mismo
> awk para el procesamiento de cadenas como perl, python y php y otras menos
> potentes y más sencillas como sed, grep, pr, cut entre otras.
>
> Si hayas un buen algoritmo cualquiera puede servirte de igual manera, el
> algoritmo es muy importante:
>
> [1]
>
> {
>         while ( $0 ~ /\<PRINCIPIO\>/ && $0 ~ /\<FIN\>/ ) {
>                 extremo_izq = substr($0, 1, match($0,/\<PRINCIPIO\>/)-1);
>                 print extremo_izq;
>                 sub_cadena = extremo_izq substr($0,
> match($0,/\<PRINCIPIO\>/), match($0,/\<FIN\>/)+RLENGTH - match($0,
> /\<PRINCIPIO\>/));
>                 sub(sub_cadena,"",$0);
>         }
>
>         print $0
> }
>
> El Martes, 19 de Diciembre de 2006 16:36, andmarti@gmail.com escribió:
> > Qué tal gente? Sigo acá con AWK. Lo que estaba tratando desde hace días
> > era lo siguiente:
> >
> > tengo un texto con algo como:
> >
> > texto1 PRINCIPIO texto2 FIN texto3 PRINCIPIO texto4 FIN texto5..
> >
> > Y lo que quería es que me borre lo que encuentre entre PRINCIPIO y FIN
> > incluyendo a estos separadores. Cosa que quede:
> > texto1 texto3 texto5
> >
> > Traté de usar .*, pero me dejaba: texto1 texto5.
> > Qué puedo llegar a hacer?
> >
> > Saludos y gracias desde ya por cualquier propuesta.
> > --
> > Andrés M.



Reply to: