Как отобразить размер «удобочитаемый человек» в lsof | grep / var *

В настоящее время я пытаюсь увидеть все файлы, которые используют / var mount.

С lsof | grep /var* lsof | grep /var* при отображении размера в байтах. Как отобразить размер файла в МБ.

Спасибо.

Начиная с версии GNU Coreutils версии 8.21 (выпущенной в декабре 2013 года) существует новая стандартная программа, называемая numfmt (= numfmt формат). Он будет делать именно то, что вы хотите.

Пример:

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

Параметр --to принимать iec (где 1K = 1024B) или si (где 1K = 1000). Есть несколько дополнительных опций, более подробная информация здесь: http://www.gnu.org/s/coreutils/numfmt .

(отказ от ответственности: я написал начальную реализацию numfmt ).

Попробуй это:

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

или короче:

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

Вы можете использовать awk для преобразования байтов в MB.

Что-то вроде этого должно показывать размер в МБ.

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

Он будет печатать все поля до 7-го поля, которое затем делится на 1048576, чтобы получить размер в МБ, а затем отображает оставшиеся два поля.