script con ficheros

Iniciado por andaluz, 1 Noviembre 2011, 11:26 AM

0 Miembros y 1 Visitante están viendo este tema.

andaluz

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 (bash) [Seleccionar]

# Crear un script que dados 3 ficheros: Equipos.txt, Resultados.txt,
# Equipos2.txt, permita generar el fichero Quiniela.txt que contiene las
# lineas de la quiniela formada por los equipos que estan en el fichero
# Equipos1.txt, el resultado del fichero Resultados.txt y los equipos de
# Equipos2.txt. El script debera comprobar que dichos fichreros tienen el
# mismo numero de elementos para que la quiniela se pueda generare
# correctamene.

#!/bin/bash
# generamos el fichero quiniela.txt
echo '' >> ./quiniela.txt

# comprobar que los 3 ficheros tienen el mismo numero de lineas
eq1=$(cat ./equipos1.txt | wc -l ./equipos1.txt | cut -d " " -f 1)
eq2=$(cat ./equipos2.txt | wc -l ./equipos2.txt | cut -d " " -f 1)
result=$(cat ./resultados.txt | wc -l ./resultados.txt | cut -d " " -f 1)
echo ''
echo 'Equipos1: '$eq1
echo 'Equipos2: '$eq2
echo 'Resultados: '$result
echo ''
cont=0
if $(test $eq1 -eq $eq2) && $(test $eq2 -eq $result)
then
echo 'Empezamos a confeccionar la quiniela...'
for i in $(cat ./equipos1.txt)
do
echo 'equipo1: '$(head $i ./equipos1.txt | tail -1)
#$eq2=$(head $i ./equipos2.txt | tail -1)
#$result=$(head $i ./resultados.txt | tail -1)
# introducimos la linea en el fichero quiniela.txt
#echo '1. '$(head $i ./equipos1.txt | tail -1)' - '$(head $i ./equipos2.txt | tail -1)' '$(head $i ./resultados.txt | tail -1)
# echo '1. ' $(head $1 ./equipos1.txt | tail -1)' - '$(head $j ./equipos2.txt | tail -1)' - '$(head $k ./resultados.txt | tail -1)
#cont=$(expr $cont \+ 1)
done
else
echo 'Los ficheros no tienen los mismos elementos.'
fi


Saludos,