tengo esta secuencia de comandos
Código:
básicamente busca las coincidencias "roow" en el archivo dia0.xml y me devuelve solo el número de linea de la segunda coincidencia.REGISTROS=`grep -n "row" dia0.xml | awk 'NR==2' | cut -f1 -d:`; echo "Total registros" $REGISTROS
pues esto funciona perfectamente en la terminal pero dentro de un script deja la variable $REGISTROS vacia y me da error el expr.
esta es el código
Código:
como podeis ver son identicas solo que en el caso del script la variable $FILE0X contiene toda la ruta del fichero dia0.xmlREGISTROS=`grep -n "row" $FILE0X | awk 'NR==2' | cut -f1 -d:` COMPLETO=165 FALTAN=`expr $COMPLETO - $REGISTROS`; echo "Total nulls "$FALTAN
a ver si alguien me puede desatascar.......
Saludos
edito:
he separado esta parte de script que no funciona a un script de pruebas y funciona perfectamente
el código es este
Código:
la única variable reutilizada en $FILE0X, el resto son nuevas# Defino el fichero donde estan los datos FILE0X=/var/www/temperatura/data/dia0.xml # Elimino el fichero temporar de pruebas rm /tmp/null.txt # Obtengo el numero de linea de la segunda coincidencia con "row" REGISTROS=`grep -n "row" $FILE0X | awk 'NR==2' | cut -f1 -d:` # Calculo las lineas que faltan para llegar a 165 FALTAN=`expr 165 - $REGISTROS`; echo "Total nulls "$FALTAN # Creo las lineas que faltan en un fichero temporal for i in `seq 1 $FALTAN` do echo "<null/>" >> /tmp/null.txt done # compruebo el nº de lineas en el fichero temporal. cat /tmp/null.txt | wc -l
cada vez lo entiendo menos......