Aide pour comprendre un script - Shell/Batch - Programmation
Marsh Posté le 18-03-2008 à 16:34:02
je transfère dans la catégorie programmation plus approprié
Marsh Posté le 18-03-2008 à 16:34:28
Ce sujet a été déplacé de la catégorie OS Alternatifs vers la categorie Programmation par Mikala
Marsh Posté le 25-03-2008 à 14:23:10
il ne manquerait pas qq espaces?
Code :
|
Bah c'est pas très compliqué :
je vire tous les fichiers txt de $rep
ensuite, pour chaque fichier trc :
Truc bizarre, pour pour il manque des $rep pour la command tkprof...
Sinon pour le portage en perl,
- la fonction glob est ton ami
- foreach aussi
- les regexp aussi
- system aussi...
Bon courage...
Marsh Posté le 25-03-2008 à 15:30:10
Oui désolé pour les espaces j'ai découvert cela aussi après, et tout de suite c'est plus clair!...
Pour la suppression j'ai fait ca :
Code :
|
Après je comptais bien utiliser la fonction system en mettant en argument la boucle for mais apres pour le reste cela ce complique un peu trop pour moi...
Marsh Posté le 26-03-2008 à 16:23:04
Je suis arrivé à cela :
[cpp]
my @fichiers = lister_traces($rep);
sub lister_traces
{
opendir (DIR, $rep)
or die "impossible d'ouvrir le repertoire $rep\n";
my @file_rep = grep { /\.trc$/} readdir(DIR);
closedir (DIR);
foreach my $nom (@file_rep)
{
system `tkprof $nom.trc $nom.txt sys=no`;
}
return @fichiers;
}
J'ai deux petits soucis :
Comment faire pour que $nom contienne le chemin complet + le fichier et sans le .trc si possible : obtenir quelque chose comme cela par exemple /save/udump/traces/exemple
Marsh Posté le 26-03-2008 à 23:14:48
tu n'es pas obligé d'utiliser open dir, glob fonctionnera aussi, et tu obtiendras en plus le chemin complet...
Ensuite, vu que glob aura matché l'ensemble des fichiers "valides", tu peux réécrire en une ligne avec la fonction map
Code :
|
Voilà voilà
Marsh Posté le 28-03-2008 à 17:42:53
Merci beaucoup cela fonctionne parfaitement.
J'ai juste du rajouter $_ car sinon il me retournait le chiffre 1 pour chaque substitution effectuées.
Code :
|
Marsh Posté le 18-03-2008 à 16:29:51
Bonjour,
Voilà je dois réécrire un script ksh en perl.
Mais je bloque sur cette fonction :
make_txt()
{
rm -f $rep/*.txtfor i in `ls $rep/*.trc`dofile=`echo $i | awk -F. '{print $1}'`tkprof $file.trc $file.txt sys=nodone
}
J'ai du mal à comprendre tout ce qu'elle fait...