Garder le nom et modifier une extension dans une boucle
Résolu
LOLplz
-
LOLplz -
LOLplz -
Bonjour,
j'ai plusieurs problème dans mon script bash et j'aimerais avoir votre aide.
Je vous explique, je voudrais savoir comment on fait pour exécuter un script sur plusieurs log d'un dossier et rediriger le résultat en gardant le nom mais en modifiant l'extension (de .log à .html).
dossier='/truc/pgfouine-1.1/dl/log/'
script='/truc/pgfouine-1.1'
statTab='/truc/pgfouine-1.1/dl/statistiqueTab'
for log in $dossier
do
$script/pgfouine.php -top 50 -logtype stderr -format html -keepformatting -memorylimit 1073741824 -file $dossier > $statTab/GARDER LE NOM.MODIFIER L'EXENTION
done
j'ai plusieurs problème dans mon script bash et j'aimerais avoir votre aide.
Je vous explique, je voudrais savoir comment on fait pour exécuter un script sur plusieurs log d'un dossier et rediriger le résultat en gardant le nom mais en modifiant l'extension (de .log à .html).
dossier='/truc/pgfouine-1.1/dl/log/'
script='/truc/pgfouine-1.1'
statTab='/truc/pgfouine-1.1/dl/statistiqueTab'
for log in $dossier
do
$script/pgfouine.php -top 50 -logtype stderr -format html -keepformatting -memorylimit 1073741824 -file $dossier > $statTab/GARDER LE NOM.MODIFIER L'EXENTION
done
A voir également:
- Garder le nom et modifier une extension dans une boucle
- Modifier extension fichier - Guide
- Modifier dns - Guide
- Modifier une story facebook - Guide
- Modifier une liste déroulante excel - Guide
- Modifier nom iphone - Guide
3 réponses
Salut,
$ var=/chemin/rep/fichier.log $ echo ${var} /chemin/rep/fichier.log $ echo ${var%.*}.html /chemin/rep/fichier.html
salut,
for f in $dossier/*.log do echo "monScript $f > ${f%.*}.html" donevoir man bash /Remplacement des paramètres
Je sais pas comment initialisé ma boucle.
Pour faire :
Pour les logs dans $dossier.
Parcourir le fichier puis leur executer une commande et renvoyer le resultat du script en gardant le nom mais en changent l' extension (de .log à html).
#!/bin/bash
dossier='/Users/truc/pgfouine-1.1/dl/log'
script='/Users/truc/pgfouine-1.1'
statTab='/Users/truc/pgfouine-1.1/dl/statistiqueTab'
i=
for i in $dossier/*.log
do
$script/pgfouine.php -top 50 -logtype stderr -format html -keepformatting -memorylimit 1073741824 -file $dossier${i} > $statTab${i%.*}.html
done
Le problème vient surement du i mais je sais pas comment l'utiliser
Pour faire :
Pour les logs dans $dossier.
Parcourir le fichier puis leur executer une commande et renvoyer le resultat du script en gardant le nom mais en changent l' extension (de .log à html).
#!/bin/bash
dossier='/Users/truc/pgfouine-1.1/dl/log'
script='/Users/truc/pgfouine-1.1'
statTab='/Users/truc/pgfouine-1.1/dl/statistiqueTab'
i=
for i in $dossier/*.log
do
$script/pgfouine.php -top 50 -logtype stderr -format html -keepformatting -memorylimit 1073741824 -file $dossier${i} > $statTab${i%.*}.html
done
Le problème vient surement du i mais je sais pas comment l'utiliser
tu en pense quoi ?
#!/bin/bash
dossier='/Users/truc/pgfouine-1.1/dl/log'
script='/Users/truc/pgfouine-1.1'
statTab='/Users/truc/pgfouine-1.1/dl/statistiqueTab'
log='/postgresql-2013-*'
for log in $dossier/*.log
do
$script/pgfouine.php -top 50 -logtype stderr -format html -keepformatting -memorylimit 1073741824 -file $dossier${log} > $statTab${log%.*}.html
done
#!/bin/bash
dossier='/Users/truc/pgfouine-1.1/dl/log'
script='/Users/truc/pgfouine-1.1'
statTab='/Users/truc/pgfouine-1.1/dl/statistiqueTab'
log='/postgresql-2013-*'
for log in $dossier/*.log
do
$script/pgfouine.php -top 50 -logtype stderr -format html -keepformatting -memorylimit 1073741824 -file $dossier${log} > $statTab${log%.*}.html
done
J'ai trouvé :
#!/bin/bash
dossier='/Users/truc/pgfouine-1.1/dl/log'
script='/Users/truc/pgfouine-1.1'
statTab='/Users/axel/Desktop/pgfouine-1.1/dl/statistiqueTab'
log='postgresql-2013-'
for log in $dossier/*.log
do
$script/pgfouine.php -top 50 -logtype stderr -format html -keepformatting -memorylimit 1073741824 -file $log > ${log%.*}.html
done
Le problème venais de log
#!/bin/bash
dossier='/Users/truc/pgfouine-1.1/dl/log'
script='/Users/truc/pgfouine-1.1'
statTab='/Users/axel/Desktop/pgfouine-1.1/dl/statistiqueTab'
log='postgresql-2013-'
for log in $dossier/*.log
do
$script/pgfouine.php -top 50 -logtype stderr -format html -keepformatting -memorylimit 1073741824 -file $log > ${log%.*}.html
done
Le problème venais de log
Et le "%" t'en a fait quoi ? Ce n'est pas en option !
Voir message de l'ami qqchquicommenceparQ ci-dessous et les références au man ;-)
c'est vraiment gentil
dossier='/truc/pgfouine-1.1/dl/log/'
script='/truc/pgfouine-1.1'
statTab='/truc/pgfouine-1.1/dl/statistiqueTab'
for dossier in $dossier/*.log
do
$script/pgfouine.php -top 50 -logtype stderr -format html -keepformatting -memorylimit 1073741824 -file $dossier > ${statTab%.*}.html
done