Je voudrais une méthode pour capturer l'utilisation du disque d'une partition particulière, en utilisant le répertoire où la partition est montée. La sortie doit simplement être un entier sans remplissage ni symboles suivants, comme je voudrais l'enregistrer dans une variable.
J'ai utilisé df --output=pcent /mount/point
, mais je dois couper la sortie car elle a un en-tête inutile, un espace unique avant la valeur et un symbole% suivant la valeur comme ceci:
Use%
83%
Dans ce cas, la sortie que j'aimerais serait tout simplement 83
. Je ne connais aucun inconvénient à utiliser la sortie de df
, mais je suis heureux d'accepter d'autres méthodes qui n'y reposent pas.
command-line
bash
scripts
disk-usage
Arronical
la source
la source
tr
, je me mettais la tête dans le pétrin avec des idées sed et awk.Réponses:
J'utiliserais ...
Je ne sais pas si sed est plus rapide, mais je ne me souviens jamais des valeurs de sed.
la source
time
pour le tester, il est aussi rapide que sed.tr
est plus facile à lire quesed
.Voici une solution awk:
Fondamentalement, ce qui se passe ici est que nous traitons le caractère '%' comme séparateur de champ (délimiteur de colonne) et n'imprimons la première colonne $ 1 que lorsque le nombre d'enregistrements est égal à deux (la
NR==2
partie)Si nous voulions utiliser des
bash
outils uniquement, nous pourrions faire quelque chose comme ceci:Et pour le plaisir, alternative
sed
via le groupe de capture et-r
pour l'expression régulière étendue:la source
sed
Solution1d
supprimer la première ligne;
pour séparer les commandess/^ //
supprimer un espace au début des ligness/%//
supprimer le%
signela source
Vous pouvez diriger vers un
grep
qui extrait simplement les chiffres:Voir en direct:
la source
Je suis tombé sur un serveur où --output = pcent n'était pas encore implémenté, j'ai donc utilisé la sortie normale, filtrée par colonne, suivie de l'expression régulière:
df /mount/point | awk '{print $5}' | tr -dc '0-9'
la source
Solution Bash en deux étapes
Étant un peu un fan de bash (Borne Again SHell) l'année dernière, j'ai pensé proposer une solution en l'utilisant.
df
sortie en variableDF_PCT
.DF_PCT
et l'affiche à l'écran.5
génération du pourcentage ( dans ce cas).la source
Voici une autre solution:
la source