cricx Posté(e) le 13 avril 2011 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
totovaauski Posté(e) le 13 avril 2011 Auteur 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
Diaoul Posté(e) le 13 avril 2011 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
totovaauski Posté(e) le 13 avril 2011 Auteur 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
cricx Posté(e) le 13 avril 2011 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
totovaauski Posté(e) le 15 avril 2011 Auteur Posté(e) le 15 avril 2011 2 - pourquoi vouloir enlever le caract 0 Citer
cricx Posté(e) le 15 avril 2011 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
totovaauski Posté(e) le 18 avril 2011 Auteur 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
cricx Posté(e) le 18 avril 2011 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
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.