5 votes

Comment puis-je obtenir la sortie de `du -c` sans le mot `total` ?

Je veux obtenir la taille totale d'un répertoire et de tous les répertoires qu'il contient.

J'utilise la commande

du -h -c "$input_variable" | grep total

Il imprime les résultats et le mot total . Comment obtenir les résultats sans le mot total ?

8voto

Kamil Maciorowski Points 57004

Tu passes exactement un fichier : "$input_variable" pour que vous puissiez vous débarrasser grep en utilisant -s au lieu de -c :

-s
Au lieu de la sortie par défaut, rapporte seulement la somme totale pour chacun des fichiers spécifiés.

( fuente )

Si je lis bien la documentation, du devrait utiliser un caractère d'espace dans sa sortie pour séparer la taille du nom de chemin. Les implémentations courantes utilisent cependant la tabulation. awk avec son séparateur de champs par défaut devrait pouvoir séparer le premier champ dans les deux cas :

du -hs "$input_variable" | awk '{print $1}'

Notes :

  • la solution ne repose pas sur le mot total donc localisé du peuvent également être prises en charge ;
  • -s est une option portable, tandis que -c n'est pas (et -h que vous avez utilisé n'est pas non plus portable).

3voto

Rachel Blackman Points 81

Avec GNU du :

du -sh "$input_variable" | awk '{print $1}'

2voto

S.S. Anne Points 124

Mettez-le dans sed : | sed 's/\ttotal//g'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X