totovaauski Posté(e) le 12 avril 2011 Partager Posté(e) le 12 avril 2011 Bonjour 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 13 avril 2011 Partager Posté(e) le 13 avril 2011 Bonjour à tous Je débute dans la création d'un script en shell me permettant (a terme) de supprimer des fichiers suivant leur ancienneté. Pour cela je dois déterminer la quantité d'espace disque restant dans un répertoire. Je post le début de mon script ---- debut --- #!/bin/sh Pourc=$(df -h | grep -E '(/mnt/soho)+' | awk '{print $4}') echo $Pourc ---- fin ---- Cette commande me retourne 1% (mon disque est pratiquement vierge) mais j'ai un mal de chien à supprimer le "%" derrière le chiffre ... Quelqu'un aurait il une idée ?? merci d'avance echo ${Pourc%%\%} ou echo ${Pourc/\%/} ou encore echo $Pourc|sed 's/%//' la meilleure forme étant la première. Mais c'est en bash script. Avec ash, la deuxième forme ne fonctionne pas. explication : ${paramètre%mot} ${paramètre%%mot} est développé pour fournir un motif, comme dans l’expansion des noms de fichiers. Si le motif correspond à une portion finale de la valeur du paramètre, alors le développement prend la valeur du paramètre après suppression du plus petit motif commun (cas « % »), ou du plus long motif (cas « %% »). Si le paramètre est @ ou *, l’opération de suppression de motif est appliquée à chaque paramètre positionnel successive- ment, et le développement donne la liste finale. Si le paramètre est une variable tableau indexée par @ ou *, l’opération de suppression de motif est appliquée à chaque membre du tableau successivement, et le développement donne la liste finale. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
totovaauski Posté(e) le 13 avril 2011 Auteur Partager Posté(e) le 13 avril 2011 Merci de ton intérêt Cricx, aoutch !! J'ai relu au moins 15 fois l'explication avant de comprendre un minimum mais je pense avoir compris J'ai opté pour la solution avec la fonction "sed". Et en potassant un peu la doc, en fait on substitue le % avec rien. Merci beaucoup, Si tu le veux bien je posterai mon script au complet des que j'aurai franchis les marches qui me mèneront au sommet de la montagne et tu me donnera ton avis ... si tu le souhaite, bien sur! Encore merci 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 13 avril 2011 Partager Posté(e) le 13 avril 2011 Merci de ton int 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Diaoul Posté(e) le 13 avril 2011 Partager Posté(e) le 13 avril 2011 Le plus simple c'est de le faire directement à la base : Pourc=$(df -h | grep -E '(/mnt/soho)+' | awk '{print $4}' | sed 's/%//') A mon avis... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
totovaauski Posté(e) le 13 avril 2011 Auteur Partager Posté(e) le 13 avril 2011 OK !! si j'ai tout bien compris test="1234" echo ${test%%4} ==> devrait me donner "123" echo ${test%%34} ==> devrait me donner "12" maintenant 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 13 avril 2011 Partager Posté(e) le 13 avril 2011 OK !! si j'ai tout bien compris test="1234" echo ${test%%4} ==> devrait me donner "123" echo ${test%%34} ==> devrait me donner "12" oui. maintenant 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
totovaauski Posté(e) le 15 avril 2011 Auteur Partager Posté(e) le 15 avril 2011 Re - bonjour 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 15 avril 2011 Partager Posté(e) le 15 avril 2011 Re - bonjour 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
totovaauski Posté(e) le 15 avril 2011 Auteur Partager Posté(e) le 15 avril 2011 avec grand plaisir 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 15 avril 2011 Partager Posté(e) le 15 avril 2011 avec grand plaisir ok, je verrais 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
totovaauski Posté(e) le 15 avril 2011 Auteur Partager Posté(e) le 15 avril 2011 2 - pourquoi vouloir enlever le caract 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
totovaauski Posté(e) le 15 avril 2011 Auteur Partager Posté(e) le 15 avril 2011 C'est tr 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 15 avril 2011 Partager Posté(e) le 15 avril 2011 Edit : Euh ... j'ai refais un peu le calcul et je pense qu'il faut faire awk '{print 100-($3*100/$1}' non. sur mon syno : DiskStation > df /volume1 |grep volume1|awk '{print $3/$2*100}' 27.0347 DiskStation > df /volume1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda3 285343836 77141748 208099688 28% /volume1 le nombre total de blocs est de 285343836, le nombre de blocs utilisés est 77141740, le pourcentage utilisé est donc bien 77141740 / 285343836 * 100 (27 % utilisés) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
totovaauski Posté(e) le 18 avril 2011 Auteur Partager Posté(e) le 18 avril 2011 Bonjour, J'ignore pourquoi mais chez toi la commande DiskStation > df /volume1 |grep volume1|awk '{print $3}' ==> te sors le "Used" tandis que chez moi la commande df /mnt/soho | grep /mnt/soho |awk '{print $3}' ==> me sors le "Available" Bref, rien de grave J'ai compris le principe Et puis je dois te faire un aveu, < Mode jracontemavie ON> J'ai pour mon usage perso un syno DS209 depuis 2 ou 3 ans, j'ai voulu en faire acheter un pour mon taf mais ils m'ont refil 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
cricx Posté(e) le 18 avril 2011 Partager Posté(e) le 18 avril 2011 Bonjour, J'ignore pourquoi mais chez toi la commande tandis que chez moi la commande Bref, rien de grave J'ai compris le principe Et puis je dois te faire un aveu, < Mode jracontemavie ON> J'ai pour mon usage perso un syno DS209 depuis 2 ou 3 ans, j'ai voulu en faire acheter un pour mon taf mais ils m'ont refil 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.