for "string"
Publicado por Alex (2 intervenciones) el 03/06/2008 22:11:46
Hola,
tengo que programar un script que captura las temperaturas de una serie de ficheros y los muestra por pantalla.
Tengo una carpeta origen (DadesTemperatura) con diferentes carpetas con años dentro y dentro de cada una diferentes ficheros de diferentes poblaciones con las temperaturas mínima, máxima y mediana de cada mes.
El script se ejecuta de la siguiente manera: ./scriptB DadesTemperatura 2000 min
Las poblaciones son archivos '.tem' (p.e. Barcelona.tem).
El problema viene cuando tiene que capturar las temperaturas de algun fichero de una población con un nombre compuesto (p.e. Cervia de les Garrigues.tem) el cual lo coge como si fueran 4 archivos (uno por cada palabra de la población).
Para capturar el contenido de los ficheros para despues filtrarlo (que es la parte del codigo que si que funciona), utilizo el siguiente bucle:
for poblacio in $(ls $dir_base/$any)
do
paste $dir_base/$any/"$poblacio" >> poblacio
IFS=$' '
entrada=0
for linia in $(cat poblacio)
do
if [ $entrada -eq 0 ]
then
entrada=1
else
echo "$poblacio"$' '$linia >> poblacio2
fi
done
rm poblacio
done
Si alguien me podria decir como corregir el bucle for para que considerara toda la población como un string?, es muy urgente!
Gracias de antemano.
tengo que programar un script que captura las temperaturas de una serie de ficheros y los muestra por pantalla.
Tengo una carpeta origen (DadesTemperatura) con diferentes carpetas con años dentro y dentro de cada una diferentes ficheros de diferentes poblaciones con las temperaturas mínima, máxima y mediana de cada mes.
El script se ejecuta de la siguiente manera: ./scriptB DadesTemperatura 2000 min
Las poblaciones son archivos '.tem' (p.e. Barcelona.tem).
El problema viene cuando tiene que capturar las temperaturas de algun fichero de una población con un nombre compuesto (p.e. Cervia de les Garrigues.tem) el cual lo coge como si fueran 4 archivos (uno por cada palabra de la población).
Para capturar el contenido de los ficheros para despues filtrarlo (que es la parte del codigo que si que funciona), utilizo el siguiente bucle:
for poblacio in $(ls $dir_base/$any)
do
paste $dir_base/$any/"$poblacio" >> poblacio
IFS=$' '
entrada=0
for linia in $(cat poblacio)
do
if [ $entrada -eq 0 ]
then
entrada=1
else
echo "$poblacio"$' '$linia >> poblacio2
fi
done
rm poblacio
done
Si alguien me podria decir como corregir el bucle for para que considerara toda la población como un string?, es muy urgente!
Gracias de antemano.
Valora esta pregunta


0