![lsof에서 "사람이 읽을 수 있는" 크기를 표시하는 방법 | grep /var*](https://linux55.com/image/80677/lsof%EC%97%90%EC%84%9C%20%22%EC%82%AC%EB%9E%8C%EC%9D%B4%20%EC%9D%BD%EC%9D%84%20%EC%88%98%20%EC%9E%88%EB%8A%94%22%20%ED%81%AC%EA%B8%B0%EB%A5%BC%20%ED%91%9C%EC%8B%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%7C%20grep%20%2Fvar*.png)
현재 /var를 사용하여 마운트된 모든 파일을 보려고 합니다.
lsof | grep /var*
크기를 바이트 단위로 표시하는 경우 . 파일 크기를 MB 단위로 표시하는 방법.
감사해요.
답변1
GNU Coreutils 버전 8.21(2013년 12월 출시)부터 numfmt
(=숫자 형식)이라는 새로운 표준 절차가 있습니다. 그것은 당신이 원하는 것을 정확하게 할 것입니다.
예:
lsof | grep /var* | numfmt --field=8 --to=iec | head
이 매개변수는 (1K=1024B) 또는 (1K=1000)을 --to
허용합니다 . 여기에는 몇 가지 다른 옵션이 있습니다. 자세한 내용은 다음과 같습니다.
iec
si
http://www.gnu.org/s/coreutils/numfmt.
(면책 조항: 초기 구현을 작성했습니다 numfmt
.)
답변2
이 시도:
| awk '{$7=$7/1048576 "MB"; print}'
또는 더 짧게:
| awk '{$7=$7/1048576 "MB"}1'
답변3
awk를 사용하여 바이트를 MB로 변환할 수 있습니다.
이와 같은 것은 크기를 MB 단위로 표시해야 합니다.
lsof | grep /var* | awk '{for(i=1;i<=6;i++){printf "%s ", $i}; print $7/1048576 "MB" " "$8" "$9 }'
7번째 필드까지 모든 필드를 인쇄한 다음 1048576으로 나누어 크기(MB)를 얻은 다음 나머지 두 필드를 표시합니다.