「無料」という単語の前の値を見つける方法は?
top -n1 | grep Mem
Mem: 2054968k av, 2034120k used, 20848k free, 0k shrd, 186768k buff
まず試しました
top -n1 | grep Mem | awk '{print $7}'
ただし、これは自由値(ここでは20848k)が別のフィールドにある可能性があるため、これはお勧めできません。フィールド6の場合もあり、フィールド7の場合もあります。
LinuxとSolarisの両方で動作するにはこれが必要です。
ベストアンサー1
$ top -bn1 | grep free
KiB Mem: 8117084 total, 6578888 used, 1538196 free, 302216 buffers
KiB Swap: 8060924 total, 26004 used, 8034920 free, 1564856 cached
$ top -bn1 | grep -oP '\S+(?=\s+free)'
1544132
8034920
GNU grepが必要ですが、「linux」タグを付けたので問題ありません。
「メン」のみ
top -bn1 | grep -oP 'Mem.*\s\K\S+(?=\s+free)'