使用`free`和`awk`计算可用交换空间百分比

Lee*_*ley 2 linux awk swap ubuntu-12.04

我正在尝试计算可用的免费交换空间百分比.使用这样的东西:

free | grep 'Swap' | awk '{t = $2; f = $4; print ($f/$t)}'
Run Code Online (Sandbox Code Playgroud)

但是awk扔了:

awk: program limit exceeded: maximum number of fields size=32767
Run Code Online (Sandbox Code Playgroud)

而且我真的不明白为什么,我的程序非常简单,我是否有可能出现奇怪的范围错误?

小智 5

试试这个:

free | grep 'Swap' | awk '{t = $2; f = $4; print (f/t)}'
Run Code Online (Sandbox Code Playgroud)

在你的代码中,你试图打印$ f和$ t,分别是$ FreeMemory和$ TotalMemory.所以我猜你总共有大约4gig ram,这将指的是〜$ 400000,这比awk在标准配置中使用的字段总数略多一点.除了使用meminfo更容易尝试,只需打印f/t,这是指变量,你得到你的答案.