Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: andaluz en 1 Noviembre 2011, 11:26 am



Título: script con ficheros
Publicado por: andaluz en 1 Noviembre 2011, 11:26 am
Hola a todos, tengo un problemilla con este script, tengo que realizar una quiniela, los problemas que na da son los siguientes:
      1. al comprobar que los 3 ficheros tienen la misma cantidad de elementos, comparo los 2 primeros y me sale bien, pero al meterle el tercero me salta el error, la verdad es que nose porque.
      2. para sacar el nombre del equipo de cada fichero, si no me equivoco lo tendría que realizar con $(head -x | tail -1) pero no consigo realizarlo.

Aqui dejo el codigo que tengo confeccionado, haber si me pueden ayudar.

el enunciado se los he dejado comentado al principio de scirpt, tambien le he comentado algunas lineas para que me ayuden en la depuracion del script.

Código
  1. # Crear un script que dados 3 ficheros: Equipos.txt, Resultados.txt,
  2. # Equipos2.txt, permita generar el fichero Quiniela.txt que contiene las
  3. # lineas de la quiniela formada por los equipos que estan en el fichero
  4. # Equipos1.txt, el resultado del fichero Resultados.txt y los equipos de
  5. # Equipos2.txt. El script debera comprobar que dichos fichreros tienen el
  6. # mismo numero de elementos para que la quiniela se pueda generare
  7. # correctamene.
  8.  
  9. #!/bin/bash
  10. # generamos el fichero quiniela.txt
  11. echo '' >> ./quiniela.txt
  12.  
  13. # comprobar que los 3 ficheros tienen el mismo numero de lineas
  14. eq1=$(cat ./equipos1.txt | wc -l ./equipos1.txt | cut -d " " -f 1)
  15. eq2=$(cat ./equipos2.txt | wc -l ./equipos2.txt | cut -d " " -f 1)
  16. result=$(cat ./resultados.txt | wc -l ./resultados.txt | cut -d " " -f 1)
  17. echo ''
  18. echo 'Equipos1: '$eq1
  19. echo 'Equipos2: '$eq2
  20. echo 'Resultados: '$result
  21. echo ''
  22. cont=0
  23. if $(test $eq1 -eq $eq2) && $(test $eq2 -eq $result)
  24. then
  25. echo 'Empezamos a confeccionar la quiniela...'
  26. for i in $(cat ./equipos1.txt)
  27. do
  28. echo 'equipo1: '$(head $i ./equipos1.txt | tail -1)
  29. #$eq2=$(head $i ./equipos2.txt | tail -1)
  30. #$result=$(head $i ./resultados.txt | tail -1)
  31. # introducimos la linea en el fichero quiniela.txt
  32. #echo '1. '$(head $i ./equipos1.txt | tail -1)' - '$(head $i ./equipos2.txt | tail -1)' '$(head $i ./resultados.txt | tail -1)
  33. # echo '1. ' $(head $1 ./equipos1.txt | tail -1)' - '$(head $j ./equipos2.txt | tail -1)' - '$(head $k ./resultados.txt | tail -1)
  34. #cont=$(expr $cont \+ 1)
  35. done
  36. else
  37. echo 'Los ficheros no tienen los mismos elementos.'
  38. fi
  39.  

Saludos,