Aller au contenu

Extraction D'un Caractere Dans Une Chaine


Messages recommandés

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.