Você também pode fazer isso usando awk
, paste
e bc
. Eu acho essa abordagem mais fácil de lembrar, a sintaxe de awk
sempre exige que eu procure as coisas para confirmar.
NOTA: Esta abordagem tem a vantagem de poder lidar com várias linhas de saída, subtraindo o segundo, terceiro, quarto, etc. números do primeiro.
$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
awk '{print $2}' | paste -sd- - | bc
7513404
Detalhes
O texto acima usa awk
para selecionar a coluna que contém os números que queremos subtrair.
$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
awk '{print $2}'
7969084
408432
Em seguida, usamos paste
para combinar esses valores de 2 valores e adicionar o sinal de menos entre eles.
$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
awk '{print $2}'| paste -sd- -
7969084-346660
Quando passamos isso para bc
, ele realiza o cálculo.
$ grep -P 'MemTotal|MemFree' /proc/meminfo | \
awk '{print $2}'| paste -sd- - | bc
7513404