Como exibir o tamanho “human-readable” em lsof | grep / var * [duplicado]

4

No momento, estou tentando ver todos os arquivos que estão usando / var mount.

Com lsof | grep /var* quando está exibindo o tamanho em bytes. Como posso exibir o tamanho do arquivo em MB?

Obrigado.

    
por rɑːdʒɑ 05.01.2016 / 06:03

3 respostas

5

Começando com a versão 8.21 do GNU Coreutils (lançada em dezembro de 2013), há um novo programa padrão chamado numfmt (= formato numérico). Ele fará exatamente o que você quer.

Exemplo:

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

O parâmetro --to aceita iec (onde 1K = 1024B) ou si (onde 1K = 1000). Existem poucas opções adicionais, mais informações aqui: link .

(disclaimer: eu escrevi a implementação inicial de numfmt ).

    
por 05.01.2016 / 23:18
3

Tente isto:

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

ou menor:

| awk '{$7=$7/1048576 "MB"}1'
    
por 05.01.2016 / 07:33
1

Você pode usar o awk para converter bytes em MB.

Algo como isso deve mostrar o tamanho em MB.

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

Ele imprimirá todos os campos até o 7º campo, que será dividido com 1048576 para obter o tamanho em MB e mostrará os dois campos restantes.

    
por 05.01.2016 / 06:57