Mon problème est le suivant.
Un petit programme en shell, entouré de tous ses fichiers de données, se trouve dans un répertoire source (-contrôlé). Pour l'exécuter, on copie tout ce petit monde dans un répertoire destination (de façon automatique), on le lance, il crée tout plein de fichiers de sortie, et à la fin je veux nettoyer le répertoire destination pour ne garder que les fichiers créés par le programme. Ou, si vous préférez, supprimer du répertoire destination tous les fichiers qui se trouveaient déjà dans le répertoire source.
J'ai les variables suivantes:
$dir_indir -> Le répertoire de base source.
$dir_outdir -> Le répertoire de base destination.
$dir -> Le chemin relatif du programme et de ses fichiers de données dans le répertoire de base -- que ce soit dans la source ou, une fois copiés, dans la destination.
Exemple:
Mon programme et ses fichiers de données sont dans jdveTest/jbsearch/SearchSimple/, et le programme est exécuté dans jtestLog/jbsearch/SearchSimple/. J'ai alors:
$dir_indir = jdveTest
$dir_outdir = jtestLog
$dir = jbsearch/SearchSimple
J'ai réussi à écrire ce que je veux faire en Korn-shell :
Code :
- for dir_file in `find $dir_indir/$dir/ -type f`; do
- echo "/bin/rm -f ${dir_file/'"$dir_indir"'/'"$dir_outdir"'}"
- done
|
mais ce type de substitution ne marche pas en shell de Bourne (car c'est du pur Korn-shell) et ce dernier m'est imposé. Help !
J'ai essayé de faire la substitution de la valeur de $dir_indir par celle de $dir_outdir avec un sed (un truc du genre "sed -e 's/$dir_indir/$dir_outdir/g'" ), mais le problème, c'est qu'il y un mélange entre les slashs contenus dans les variables d'environnement est ceux de sed.
PS: Dans la boucle shell ci-dessus, si vous connaissez un moyen d'extraire $dir_indir de $dir_file, et d'obtenir le chemin relatif du fichier $dir_file, ça me va aussi. $dir_outdir est mon répertoire courant à ce moment-là...
[edit]--Message édité par BifaceMcLeOD--[/edit]