The Jair has you
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Recopilación de los ejercicios resueltos en 06-07

2 participantes

Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Recopilación de los ejercicios resueltos en 06-07

Mensaje por djcloud Mar 16 Oct 2007, 19:52

Entrega 5.2:


Código:
1.-)


      #!/bin/bash


        if test -d $1


        then


        ls -l $1|egrep '^l'


        else


        cat $1


        fi





2.-)


      {FOR}


        #!/bin/bash


        for i in $1 $2 $3 $4 $5;


        do


        echo -n $i


        done


     


        {WHILE}


        #!/bin/bash


        min=1


        while (($min<6))


        do


        echo $min


        let min=$min+1


        done





3.-)


        for i in $*;do


        test $i


        let sum=sum+$i


        done


        echo $sum





4.-)


        tot=$*


        tot=${tot// /+}


        sum=0


        for arg in $*


        do


        ((sum=$sum+$arg))


        done


        echo $tot=$sum





5.-)


        #!/bin/bash


        for i in $*;do


        if test -f $i


        then


        echo $i" es un fichero"


        elif test -d $i


        then


        echo $i" es un directorio"


        fi


        done





6.-)


        or arch in `ls *.html | cut -d "." -f1`


        do


        `mv $arch.html $arch.xhtml`


        done


        echo 'Archivos .html renombrados a .xhtlm'





7.-)


        cont=1


        while read LINEA


        do


        echo $cont-$LINEA


        ((cont=$cont+1))


        done < /etc/passwd


Última edición por el Mar 16 Oct 2007, 19:57, editado 1 vez
djcloud
djcloud
Amo del foro
Amo del foro

Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por djcloud Mar 16 Oct 2007, 19:57

Ejercicio 5.3

Código:
1)
#!/bin/bash

while read LINEA
do
Lin=`echo $LINEA | egrep "^.*:.*$"`

if test ! $Lin
then
continue
fi

final=`echo $Lin | cut -d: -f7`

if test $final == "/bin/bash"
then
continue
fi

echo $Lin|cut -d: -f 1

done



2)

a) Break sale del bucle y continue pasa a la siguente pasada.

Cuando hay varios bucles anidados: Break n sale hasta el bucle n. Es decir si tienes un codigo como el siguiente:

for
for
for

break 2
done
done
viene aqui
done

Al llegar al break 2 iria a la linea viene aqui.

Continue n pasa a la siguente pasada del bucle anidado n

for
for

sigue aqui en la siguiente pasada

for

continue 2

done
done
done

Al llegar a continue 2 vuelve al segundo bucle, comenzando la siguiente pasada.

b)
#!/bin/bash

cat list-usu | grep ":" | grep -v "^.*/bin/bash$"|cut -d: -f 1


Última edición por el Mar 16 Oct 2007, 20:06, editado 1 vez
djcloud
djcloud
Amo del foro
Amo del foro

Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por djcloud Mar 16 Oct 2007, 20:06

Entrega 5.4:

Código:
1)
#!/bin/bash
function test_letras()
{
        local lin
        lin=`echo $1 | egrep "^[a-zA-Z]+$"`
        if test ! $lin
        then
                return 0
        else
                return 1
        fi

}

echo -n "Introduce el nombre:"
read NOMBRE
echo -n "Introduce el primer apellido:"
read APELLIDO1
echo -n "Introduce el segundo apellido:"
read APELLIDO2
test_letras $NOMBRE
res=$?

if test $res -eq 0
then
        echo "El nombre contiene caracteres no validos"
fi
test_letras $APELLIDO1
res=$?
if test $res -eq 0
then
        echo "El primer apellido contiene caracteres no validos"
fi
test_letras $APELLIDO2
res=$?
if test $res -eq 0
then
        echo "El segundo apellido contiene caracteres no validos"
fi

2)

2)

#!/bin/bash
function test_letras()
{
        local lin
        lin=`echo $1 | egrep "^[a-zA-Z]+$"`
        if test ! $lin
        then
                return 0
        else
                return 1
        fi

}

function test_may()
{
        local lin
        lin=`echo $1 |egrep "^[:upper:]+$"`
        if test ! $lin
        then
                return 1
        else
                return 0
        fi
}

echo -n "Introduce el nombre:"
read NOMBRE
echo -n "Introduce el primer apellido:"
read APELLIDO1
echo -n "Introduce el segundo apellido:"
read APELLIDO2
test_letras $NOMBRE
res=$?

if test $res -eq 0
then
        echo "El nombre contiene caracteres no validos"
fi
test_letras $APELLIDO1
res=$?
if test $res -eq 0
then
        echo "El primer apellido contiene caracteres no validos"
fi
test_letras $APELLIDO2
res=$?
if test $res -eq 0
then
        echo "El segundo apellido contiene caracteres no validos"
fi
test_may $NOMBRE
res=$?
if test $res -eq 0
then
        echo "El nombre contine caracteres en minusculas"
fi
test_may $APELLIDO1
res=$?
if test $res -eq 0
then
        echo "El primer apellido contine caracteres en minusculas"
fi
test_may $APELLIDO2
res=$?
if test $res -eq 0
then
        echo "El segundo apellido contine caracteres en minusculas"
fi

3)
#!/bin/bash
function test_letras()
{
  local lin
  lin=`echo $1 | egrep "^[a-zA-Z]+$"`
  if test ! $lin
  then
      return 0
  else
      return 1
  fi

}

function test_may()
{
  local lin
  lin=`echo $1 |egrep "^[^:upper:]+$"`
  if test ! $lin
  then
      return 0
  else
      return 1
  fi
}

function a_may ()
{
  for arg in $*
  do
      echo `echo $arg | tr [:lower:] [:upper:]`
  done
}

echo -n "Introduce el nombre:"
read NOMBRE
echo -n "Introduce el primer apellido:"
read APELLIDO1
echo -n "Introduce el segundo apellido:"
read APELLIDO2
test_letras $NOMBRE
res=$?
if test $res -eq 0
then
  echo "El nombre contiene caracteres no validos"
fi
test_letras $APELLIDO1
res=$?
if test $res -eq 0
then
  echo "El primer apellido contiene caracteres no validos" 
fi 
test_letras $APELLIDO2
res=$?
if test $res -eq 0
then
  echo "El segundo apellido contiene caracteres no validos"
fi
test_may $NOMBRE
res=$?
if test $res -eq 0
then
  NOMBRE=`a_may $NOMBRE`
  echo "Nombre cambiado a mayusculas: $NOMBRE"
fi
test_may $APELLIDO1
res=$?
if test $res -eq 0
then
  APELLIDO1=`a_may $APELLIDO1`
        echo "Primer apellido cambiado a mayusculas: $Apellido1"
fi
test_may $APELLIDO2
res=$?
if test $res -eq 0
then
  APELLIDO2=`a_may $APELLIDO2`
        echo "Segundo apellido cambiado a mayusculas: $APELLIDO2"
fi


4)

#!/bin/bash
function test_letras()
{
  local lin
  lin=`echo $1 | egrep "^[a-zA-Z]+$"`
  if test ! $lin
  then
      return 0
  else
      return 1
  fi

}

function test_may()
{
  local lin
  lin=`echo $1 |egrep "^[^:upper:]+$"`
  if test ! $lin
  then
      return 0
  else
      return 1
  fi
}

function a_may ()
{
  for arg in $*
  do
      echo `echo $arg | tr [:lower:] [:upper:]`
  done
}

function long_cad ()
{
  local lin
  lin=`echo $1 | wc -m`
  local num_max
  ((num_max=$2+2))
  if test $lin -lt $num_max
  then
      return 1
  else
      return 0
  fi
}
MAX=10

echo -n "Introduce el nombre:"
read NOMBRE
long_cad $NOMBRE $MAX
num=$?
while test $num -eq 0
do
  echo -n "El nombre puede tener como maximo $MAX letras. Vuelva a introducirlo:"
  read NOMBRE
  long_cad $NOMBRE $MAX
  num=$?
done
echo -n "Introduce el primer apellido:"
read APELLIDO1
long_cad $APELLIDO1 $MAX
num=$?
while test $num -eq 0
do
        echo -n "Los apellidos  pueden tener como maximo $MAX letras. Vuelva a introducirlo:"
        read APELLIDO1
        long_cad $APELLIDO1 $MAX
        num=$?
done
echo -n "Introduce el segundo apellido:"
read APELLIDO2
long_cad $APELLIDO2 $MAX
num=$?
while test $num -eq 0
do
        echo -n "Los apellidos pueden tener como maximo $MAX letras. Vuelva a introducirlo:"
        read APELLIDO2
        long_cad $APELLIDO2 $MAX
        num=$?
done
test_letras $NOMBRE
res=$?
if test $res -eq 0
then
  echo "El nombre contiene caracteres no validos"
fi
test_letras $APELLIDO1
res=$?
if test $res -eq 0
then
  echo "El primer apellido contiene caracteres no validos" 
fi 
test_letras $APELLIDO2
res=$?
if test $res -eq 0
then
  echo "El segundo apellido contiene caracteres no validos"
fi
test_may $NOMBRE
res=$?
if test $res -eq 0
then
  NOMBRE=`a_may $NOMBRE`
  echo "Nombre cambiado a mayusculas: $NOMBRE"
fi
test_may $APELLIDO1
res=$?
if test $res -eq 0
then
  APELLIDO1=`a_may $APELLIDO1`
        echo "Primer apellido cambiado a mayusculas: $APELLIDO1"
fi
test_may $APELLIDO2
res=$?
if test $res -eq 0
then
  APELLIDO2=`a_may $APELLIDO2`
        echo "Segundo apellido cambiado a mayusculas: $APELLIDO2"
fi
djcloud
djcloud
Amo del foro
Amo del foro

Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por djcloud Mar 16 Oct 2007, 20:09

Entrega 5-6:

Código:
1)

history | awk '{printf $2 "\n" }' | sort | uniq -c  | sort -nr | head -5

2)

    #!/bin/bash
while read linea
do
IP=`echo "$linea" | egrep '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])){3}' | cut -f1`
  if [ $IP ]
  then
  ping -c1 $IP
  fi
done < /etc/hosts
djcloud
djcloud
Amo del foro
Amo del foro

Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por djcloud Mar 16 Oct 2007, 20:09

Practica 1:

Código:

practica 1:





1





ls -l leame





- archivo


d directorio


c dispositivo de tipo caracter


b dispositivo de tipo bloque


p pipe con nombre


l enlace simbólico a un directorio





138





todos los usuarios, ya que tiene el permiso de lectura (r) para el ususario


grupo y para otros





solo el propio nombre del archivo (leame)








2





chmod -R ug+rw /homeluserlejec


chmod -R o+r /homeluserlejec





chmod -R 664





3





ls -Fa


* archivos ocultos


/ directorios





4





usuario, ya que el grupo y otros no tienen permisos de escritura





5





archivo: -rw-r--r--





directorio: wrxr-xr-x





6





Son un archivo que almacena el nombre de otro archivo, funciona como un


puntero a ese archivo.





wrxwrxwrx





Si





7





find ~/*[^:lower:]*.txt


salida:


/home/infos/luihija/W


/home/infos/luihija/arcHprueba1


/home/infos/luihija/WC


/home/infos/luihija/Desktop


/home/infos/luihija/Desktop/Autostart





find ~/[a-z][a-z][0-9][0-9]*.txt -mtime -5





fing ~/ -size +100b








8





find ~/ -exec ls -l '{}' \;





find logs/ -type f -exec rm -i '{}' \;





find -name "admin.log.[0-9][0-9][0-9][0-9]" -mtime -7 -exec rm -i '{}' \;





9





Lista los archivos de la carpeta /apps/audit que tenga todos los bits
de permiso activos ara el fichero paea el usuario y les añade el
permiso de escritura para los otros usuarios





xargs ejecuta el comando que sea el primer argumento con cada archivo que seciba por pipeline





10





ls ~/[io]*





ls log.[0-9]*





ls log.[!0-9]*





ls [A-Z]*
djcloud
djcloud
Amo del foro
Amo del foro

Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por djcloud Mar 16 Oct 2007, 20:10

Practica 2:

Código:
Practica 2





1)








a. /^USER$/








b. /tty$/








c. /[.]$/








d. ll | grep ^d..x..x..x








e. ll | grep ^[^l]








f. /.+[0]/








g. /^$/








h. /.+$/








i. /^.{6}$/








j. /\w/








k. /[:lower:]+/








l. /^[^0-9^$]*$/








m. /[^[:alnum:]]/








n. /^.$/








o. /^[.][:digit:][:digit:].*$/








p. /(0?[1-9]|[12][0-9]|3[01])-(0?[1-9]|1[012])-[0-9]{4}/








q. /([01][0-9][0-9]|2[0-4][0-9]|25[0-5])[.]([01][0-9][0-9]|2[0-4][0-9]|25[0-5])[.]([01][0-9][0-9]|2[0-4][0-9]|25[0-5])/











2) /[:digit:]{4}XX[:digit:]{4}/
djcloud
djcloud
Amo del foro
Amo del foro

Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por djcloud Mar 16 Oct 2007, 20:11

Practica 3:

Código:
Practica 3





01) egrep -c '48' datos.f


02) egrep -n '48' datos.f


03) egrep -v '48' datos.f


04) egrep -w '48' datos.f


05) egrep -i 'sept' datos.f


06) egrep '483|484' datos.f


07) egrep -v '^48.*' datos.f


08 ) egrep -i '483[ ]*sept' datos.f


09) egrep '\b\b\b\b\bK...D' datos.f


10) egrep '\b\b5..(1996|1998)' datos.f


11) a: egrep '4{2}' datos.f


    b: egrep '4[^4]+4' datos.f


12) egrep '^(219|216)' datos.f


13) egrep -x '|[ ]*' datos.f


14) egrep '[.]' datos.f


15) egrep '(([01][0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}([01][0-9][0-9]|2[0-4][0-9]|25[0-5])' hosts


16) egrep '\b\b\b[[:upper:]]*\b' datos.f


17) ll ~ | egrep '^d.*$'
djcloud
djcloud
Amo del foro
Amo del foro

Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por djcloud Mar 16 Oct 2007, 20:11

Practica 4




Código:

01) sort -t ":" -k 5 uf1



02) sort -o uf1ap_ord -t ":" -k 5 uf1



03) sort -o uf1num_ord -t ":" -k 3 uf1ap_ord



04) sort -o uf1num_ord -t ":" -k 5 uf1num_ord



05) sort -o uape_ord -t ":" -k 5 uf1 uf2



06) head -n 2 uape_ord



07) tail -n 2 uape_ord



08 ) uniq uape_ord | head -n 2



09) uniq uape_ord | cut -d ":" -f 5



10) uniq uape_ord | cut -d ":" -f 5 | cut -d "," -f 2 | cut -d "-" -f 1 > n_usu



11) uniq uape_ord | cut -d ":" -f 5 | cut -d " " -f 1 > 1a_usu



12) paste n_usu 1a_usu > na_usu



13) egrep "^(483|484)" datos.f | cut -d " " -f 7



14) egrep -v "^48" datos.f | cut -d " " -f 7



15) egrep -i "^483 sept" datos.f | cut -d " " -f 7



16) cut -d " " -f 6,7 datos.f | egrep '^K...D' | cut -d " " -f 2
djcloud
djcloud
Amo del foro
Amo del foro

Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por djcloud Mar 16 Oct 2007, 20:11

Practica 5:

Código:


1) egrep -v '^[ ]*$' datos.f | awk 'BEGIN {printf "\nMes\tVentas\n\n---------------\n";}


{printf "%s\t%d\n",$2,$7;}


END{printf "----\nFin de informe\n";}' -





2) egrep -v '^[ ]*$' datos.f | awk 'BEGIN {printf "\nMes\tVentas\n\n---------------\n";}


/DIC/{printf "%s\t%d\n",$2,$7;}


END{printf "----\nFin de informe\n";}' -





3) egrep -v '^[ ]*$' datos.f | awk 'BEGIN {printf "\nAlmacenes con menos de 100 ventas\n";}


($7<100){printf "%s\t%d\n",$3,$7;}


END{printf "----\nFin de informe\n";}' -





4) egrep -v '^[ ]*$' datos.f | awk '/NOV|DIC/{cont+=$7;}


END{printf"Total de ventas en Noviembre y Dicciembre:%d\n",cont;}' cont=0 -





5) sort -t " " -k 2 -M datos.f | egrep -v "^[ ]*$" | awk '
BEGIN{sumaMes=0;sumaTot=0;printf "\nMes\tTotal\n-----------\n\n";}
{sumaMes+=$7;sumaTot+=$7; if (mesAnterior!="" &&
mesAnterior!=toupper($2)) {printf
"%s\t%d\n",mesAnterior,sumaMes-$7;sumaMes=$7} mesAnterior=toupper($2);}
END{printf "%s\t%d\n",mesAnterior,sumaMes;printf "··········\nTotal
general: %d\n",sumaTot;}' -




 Primero ordeno por meses (sort -M) los meses, con el egrep le
quito las lineas vacias. Con el awk Muestro el informe: primero la
cabecera e inicializacion de variables en el BEGIN, despues los
calculos, sumo el total y el de cada mes, y si el mesAnterior no esta
en blanco (para que no imprima un 0 en el primer caso) y es diferente
al mes actual imprimimos el total de ese mes (se le resto la venta
actual ya que seria del mes siguiente) y se pone la suma del mes a 0.
Para terminar en el END imprimimos el ultimo mes (que al no tener uno
detras diferente no se imprime), y la linea de pie con el total.
djcloud
djcloud
Amo del foro
Amo del foro

Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por djcloud Mar 16 Oct 2007, 20:12

Practica 6

Código:

01)sed -n '/[.]$/d'


02)sed -n '/abcd/d'


03)sed -n 's/[ ]\{2,\}/ /g'


04)sed -n 's/^[ ]\+//g'


05)sed -n 's/[.][ ]\{2,\}/ /g'


06)sed -n '/^[ ]*$/d'


07)sed -n 's/^.//g'


08)sed -n 's/...COL//g'


09)sed -n 's/[/]//'


10)sed -n 's/[ ]\+/\t/g'


11)sed -n 's/^\t//g'


12)sed -n 's/\t//g'





Sed como filtro:


1)sed '/^[^j]/d' /etc/password | head -n 2


2)sed '/[0-9]\{3,\}/d' etc/passwd | head -n 2





(Seria mejor asegurarnos de que solo compruebe el campo dixo, y no toda
la linea, pero como no tenemos acceso a esos archivos, no puedo ver ni
los separadores, ni en que columna esta cada campo)





awk:




1) grep '^...0[1-4]' contabilidad.dat | sed 's/^...//g' | sed
's/-[0-9]\{4\}|/|/g' | sed 's/|/ /g' | sort -t " " -k 1 -n |awk
'BEGIN{sumaGas=0;sumaAgua=0;sumaLuz=0;sumaGastos=0;printf
"\nMes\tGas\tAgua\tLuz\tTotalGastos\n-------------------------------------------\n\n";}


{if (mesAnterior!=0 && mesAnterior!=$1)


{printf "%d\t%d\t%d\t%d\t%d\n",mesAnterior,sumaGas,sumaAgua,sumaLuz,sumaGastos;sumaGas=0;sumaLuz=0;sumaAgua=0;sumaGastos=0}


mesAnterior=$1;


if ($2=="AGUA") {sumaAgua-=$3;}if ($2=="GAS") {sumaGas-=$3;} if ($2=="LUZ"){sumaLuz-=$3;} if ($3<0){sumaGastos-=$3;}}


END {printf "%d\t%d\t%d\t%d\t%d\n",mesAnterior,sumaGas,sumaAgua,sumaLuz,sumaGastos}' -




con la primera parte escojo los meses que quiero, los ordeno y los
pongo en un formato en el que es mas facil hacer los calculos. la
primera parte da un listado como el siguiente:





1 -            96


01 GAS      -34175


01 INGRESO  141200


01 LUZ      -15797


02 LUZ      -12475


02 MENS      -96092


03 INGRESO  101300


03 MENS      -96092


04 AGUA      -15859


04 INGRESO  134000


04 MENS      -96092





Con el awk hacemos lo calculos e imprimimos en un determinado formato, la salida seria la siguiente:








Mes    Gas    Agua    Luz    TotalGastos


-------------------------------------------





1      34175  0      15797  49972


2      0      0      12475  108567


3      0      0      0      96092


4      0      15859  0      111951
djcloud
djcloud
Amo del foro
Amo del foro

Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por djcloud Mar 16 Oct 2007, 20:13

Practica Scripts 1:

Código:


1)


        echo $1


        echo $2


        echo $3





2)


        echo $#





3)


        echo $*


4) Lo he hecho de dos maneras:


   a)


      tot=$*


      tot=${tot// /+}


      echo $tot


   b)


      for a in $@


      do


         tot=$tot$a+


      done


      echo $tot


5)


        if test $1 = $2


        then


                echo 'IGUALES'


        else


                echo 'DISTINTO'


        fi


6)


        if test -f $1


        then


                echo 'Es un archivo'


        else


      echo 'No es un fichero'


   fi


7)


   if test -f $1


        then


                echo 'Es un archivo'


        else


      echo 'Es un directorio'


   fi


   if test -r $1


   then


      echo 'Tiene permiso de lectura'


   fi


   if test -w $1


   then


      echo 'Tiene permiso de escritura'


   fi


   if test -x $1


   then


      echo 'Tiene permiso de ejecucion'


   fi
djcloud
djcloud
Amo del foro
Amo del foro

Cantidad de envíos : 389
Edad : 39
Fecha de inscripción : 11/10/2007

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por Garrosa Mar 16 Oct 2007, 22:27

Joder DjCloud, como aprovecha para subir mensajes, xD
Garrosa
Garrosa
Amo del foro
Amo del foro

Cantidad de envíos : 484
Edad : 35
Fecha de inscripción : 13/10/2007

http://www.fotolog.com/lincoln_garrous

Volver arriba Ir abajo

Recopilación de los ejercicios resueltos en 06-07 Empty Re: Recopilación de los ejercicios resueltos en 06-07

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.