Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3095 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Aide pour comprendre un script

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide pour comprendre un script

n°1704165
doog77
Posté le 18-03-2008 à 16:29:51  profilanswer
 

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... :pt1cable:

mood
Publicité
Posté le 18-03-2008 à 16:29:51  profilanswer
 

n°1704166
mikala
Souviens toi du 5 Novembre...
Posté le 18-03-2008 à 16:34:02  profilanswer
 

je transfère dans la catégorie programmation plus approprié :o


---------------
Intermittent du GNU
n°1704167
mikala
Souviens toi du 5 Novembre...
Posté le 18-03-2008 à 16:34:28  profilanswer
 

Ce sujet a été déplacé de la catégorie OS Alternatifs vers la categorie Programmation par Mikala


---------------
Intermittent du GNU
n°1707339
dreameddea​th
Posté le 25-03-2008 à 14:23:10  profilanswer
 

il ne manquerait pas qq espaces?

Code :
  1. make_txt()
  2. {
  3.     rm -f $rep/*.txt
  4.     for i in `ls $rep/*.trc`do
  5.         file=`echo $i | awk -F. '{print $1}'
  6.         tkprof $file.trc $file.txt sys=no
  7.     done
  8. }


Bah c'est pas très compliqué :
 
je vire tous les fichiers txt de $rep
ensuite, pour chaque fichier trc :

  • je récupère le nom de fichier sans l'extension trc dans la variable $i (tous de qui se trouve entre le début et le 1er "." )
  • ensuite j'appelle la commande tkprof avec le nom de fichier précédemment calculé


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...
 

n°1707391
doog77
Posté le 25-03-2008 à 15:30:10  profilanswer
 

Oui désolé pour les espaces j'ai découvert cela aussi après, et tout de suite c'est plus clair!...  :sleep:  
 
Pour la suppression j'ai fait ca :
 

Code :
  1. my $succes = unlink glob "$rep/*.txt";
  2. print "$succes fichier(s) supprimé(s).\n";


 
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...  :(

n°1708218
doog77
Posté le 26-03-2008 à 16:23:04  profilanswer
 

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


Message édité par doog77 le 26-03-2008 à 16:26:59
n°1708437
dreameddea​th
Posté le 26-03-2008 à 23:14:48  profilanswer
 

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 :
  1. my @filenames_cleaned = map { s/\.trc$//} glob("$rep/*.trc" );


 
Voilà voilà

n°1709420
doog77
Posté le 28-03-2008 à 17:42:53  profilanswer
 

Merci beaucoup cela fonctionne parfaitement.  
J'ai juste du rajouter $_ car sinon il me retournait le chiffre 1 pour chaque substitution effectuées.
 

Code :
  1. my @file_rep = map { s/\.trc$//;$_;} glob("$rep/*.trc" );

n°1711301
dreameddea​th
Posté le 01-04-2008 à 22:45:40  profilanswer
 

Ouupss exact desolé pour la boulette


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Aide pour comprendre un script

 

Sujets relatifs
aide prog javascriptProbleme de script?
Demande d'aide sur mémoire physique/memoire virtuelleBesoin d'aide svp
Aide pour la création d'une baseMettre une image en miniature a partir d'un script
De l'aide pour créer un MCD à partir d'une base de données[Résolu] VB.NET lire clé registre
demande d'aide pour operation en virgule fixescript fusionner plusieurs tables en 1 seule
Plus de sujets relatifs à : Aide pour comprendre un script


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR