sed+ は 1 行で単語の前の値を探します。

sed+ は 1 行で単語の前の値を探します。

「無料」という単語の前の値を見つける方法は?

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)'

おすすめ記事