web-dev-qa-db-fra.com

Comment afficher la taille "lisible par l'homme" dans lsof | grep / var *

J'essaie actuellement de voir, tous les fichiers qui utilisent/var montent.

Avec lsof | grep /var* Lorsque sa taille d'affichage en octets. Comment puis-je afficher la taille du fichier en MB.

Merci.

7
rɑːdʒɑ

En commençant par GNU CARUTILS version 8.21 (publié le décédération de 2013), il existe un nouveau programme standard appelé numfmt (= format de numéro). Il fera exactement ce que vous voulez.

Exemple:

lsof | grep /var*  | numfmt --field=8 --to=iec | head

Le paramètre --to accepte iec (où 1k = 1024b) ou si (où 1k = 1000). Il y a peu d'options supplémentaires, plus d'informations ici: http://www.gnu.org/s/coretutils/numfmt .

(Disclaimer: J'ai écrit la mise en œuvre initiale de numfmt).

13
A. Gordon

Essaye ça:

| awk '{$7=$7/1048576 "MB"; print}'

ou plus court:

| awk '{$7=$7/1048576 "MB"}1'
3
Cyrus

Vous pouvez utiliser AWK pour convertir les octets en MB.

Quelque chose comme ça devrait montrer la taille en MB.

lsof | grep /var* | awk '{for(i=1;i<=6;i++){printf "%s ", $i}; print $7/1048576 "MB" " "$8" "$9 }'

Il imprimera tous les champs jusqu'à 7e champ, qui est ensuite divisé avec 1048576 pour obtenir la taille en MB, puis indique que les deux champs restants.

1
rAlen