Re: Consulta sobre sed.
Gabriel Bueno escreveu:
>> -----Mensaje original-----
>> De: Miguel Da Silva - Centro de Matemática [mailto:mdasilva@fing.edu.uy]
>> Enviado el: Jueves, 20 de Diciembre de 2007 17:06
>> Para: dus
>> Asunto: Consulta sobre sed.
>>
>>
>> Estimados, tengo unos archivos de texto cuyos datos son separados por la
>> secuencia "::". Un ejemplo sería así...
>>
>> Debian::Gentoo::Solaris
>>
>> Y otro ejemplo sería:
>>
>> ::Gentoo::
>>
>> Y además variantes de estos 2 ejemplos dados; o sea, puede haber pares
>> de "::" seguidos. Pero lo que importa es lo siguinte...
>>
>> El último campo (el número 30) trae un dato que tiene que estar en el
>> décimo campo y además, se mueve hacia la derecha los demás campos.
>>
>> Ejemplo...
>>
>> Debian::Gentoo::Solaris::Slackware::CentOS::Fedora
>>
>> Debian::Gentoo::Fedora::Slackware::CentOS::Solaris
>>
>> La cuestión es que no quisiera hacer esto en C y estuve viendo de
>> hacerlo son sed u otra herramienta similar.
>>
>> Pero casi no uso sed y lo que hice fue muy sencillo.
>>
>> Alguna sugerencia?!
>>
>
> Yo lo haria con awk
>
> #!/bin/bash
> awk -F"::"'{print
> $1"::"$2"::"$3"::"........"::"$30"::"$11"::"...."::"$29"::"$10}'
>
> O con php
>
> <?php
> $file = fopen($archivo, r);
> while($linea = fgets($file))
> {
> $campo = explode("::",$linea);
> for ($i=0;$i<9;i++)
> {
> $linea_nueva .= $campo[$i];
> }
> $linea_nueva .= $campo[30];
> for ($i=11;$i<29;i++)
> {
> $linea_nueva .= $campo[$i];
> }
> $linea_nueva .= $campo[10];
> }
> ?>
>
> No soy programador asi que seguro esto no va a andar...jeje
> Pero yo lo encararia por alguna de las dos formas.
>
> Saludos
>
>
Pruebo mañana!!! Ya volvi a casa y eso es cosas del trabajo :)
Gracias por la sugerencia... voy a probar con awk porque si lo encaro
con php prefiero hacerlo con C :)
Saludos.
--
Miguel Da Silva
Administrador de Red
Centro de Matemática - http://www.cmat.edu.uy
Facultad de Ciencias - http://www.fcien.edu.uy
Universidad de la República - http://www.rau.edu.uy
Reply to: