Change output format of "top" command in Mac OS for memory usage?
Going off of @TheMadsen's answer above, you can setup a bash script like so:
#!/bin/bash
while true; do
top -l 1 -s 0 | grep PhysMem | awk 'BEGIN {S["G"]=1024; S["M"]=1}
/PhysMem:/ {U=substr($2, 1, length($2)-1) * S[substr($2, length($2))];
N=substr($6, 1, length($6)-1) * S[substr($6, length($6))];
printf("%.2fG / %.2fG\n", U/1024, (N+U) / 1024)}'
sleep 1
done
If you run this script it will periodically run the command in the background (changing the new line parameter in the printf
statement from \n
to \r
updates it on the same line).
Otherwise you can set up a cron
job to run the command periodically
A bit verbose, but the following awk snippet does this
$ echo 'PhysMem: 5490M used (2569M wired), 11G unused.' \
| awk 'BEGIN {S["G"]=1024; S["M"]=1}
/PhysMem:/ {U=substr($2, 1, length($2)-1) * S[substr($2, length($2))];
N=substr($6, 1, length($6)-1) * S[substr($6, length($6))];
printf("%.2fG / %.2fG\n", U/1024, (N+U) / 1024)}'
5.36G / 16.36G