Linux/Unix Shell Scripting - Ejecutar un script en un directorio

 
Vista:

Ejecutar un script en un directorio

Publicado por José Luis (2 intervenciones) el 02/09/2004 00:49:16
EL asunto es el siguiente:

tengo un subdirectorio con archivos xxx.sav y xxx_1.sav por ejemplo 100.sav tendrá su pareja 100_1.sav

quiero ejecutar el siguiente script para un numero indeterminado de archivos pero dentro de un for (en alguna ocasión vi un scrip que lo manejaba)

---- inicia el ejemplo ---
awk -c '{
if ($1=="S")
encabezado = "SHOT"
else
encabezado = "TRACE"
printf "%d %s %d %d %d %d %d %d\n",$3, encabezado,$4,$5,$6,$7,$8,$9
}' 289.SAV 289_2.SAV | sort > 289.tmp
awk -c '{printf "%s %d %d %d %d %d %d\n",$2,$3,$4,$5,$6,$7,$8}' 289.tmp > 289.final
------ fin del ejemplo ---
esto se ejecutaria por cada uno de los pares de archivos que encuentre y al final unir todas los *.final en un archivo de salida_general.

alguien me podria pasar un ejemplo de como usar el for para el contenido de un subdirectorio y ejecutar el scrip por archivo encontrado?

espero no haberme hecho bolas con la super explicacion!!! ;-)

SAlu2 a to2

José Luis

VHSATABMEX
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

En el google encontré ejemplos...

Publicado por José Luis (2 intervenciones) el 02/09/2004 17:38:18
El archivo finalmente quedó de la siguiente manera...

-------------------- inicia escript----------------------------------------
date
var=`ls ??????.SAV`
for i in $var
do
nombre1=`echo $i | cut -d "." -f 1`".SAV"
nombre2=`echo $i | cut -d "." -f 1`"_2.SAV"
nombre3=`echo $i | cut -d "." -f 1`".tmp"
nombre4=`echo $i | cut -d "." -f 1`".geo"
echo Se colocaran las columnas [SHOT] a $nombre1 y [TRACE] a $nombre2
awk -c '{
if ($1=="S")
encabezado = "SHOT"
else
encabezado = "TRACE"
printf "%d %s %d %d %d %d %d %d\n",$3, encabezado,$4,$5,$6,$7,$8,$9
}' $nombre1 $nombre2 | sort > $nombre3
echo Ahora se obtendra el archivo de salida $nombre4
awk -c '{printf "%s %d %d %d %d %d %d\n",$2,$3,$4,$5,$6,$7,$8}' $nombre3 > $nombre4
rm $nombre3
done
echo Finalmente obtenemos el archivo quiebres.geo con todos los archivos geo que existan en el subdirectorio.
cat *.geo > quiebres.geo
date
--------------------------------------- fin del escript ------------------------------------

Salu2 a to2

José Luis

VHSATABMEX
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar