我试图计算可用交换空间的百分比。 使用这样的东西:
free | grep 'Swap' | awk '{t = $2; f = $4; print ($f/$t)}'
但是awk正在抛出:
awk: program limit exceeded: maximum number of fields size=32767
我不明白为什么,我的程序很简单,有可能我有一个奇怪的范围错误?
如何使用awk在文件中写入一个文件(); 并在之后添加一个printline; 打印find的string?
复制每个目录中的png,如果png> 600×600?
不考虑缺失值的多个文件的平均值
使用RS和RT在Awk命令中匹配多个string
Linux shell脚本awk命令打开的文件太多了
添加文本到一行的中间
如何在ksh中反转string
如何使用sed或awk在单独的文件中格式化模式
如何通过ssh命令行来远程命令的引号
试试这个:
free | grep 'Swap' | awk '{t = $2; f = $4; print (f/t)}'
在你的代码中,你试图打印$ f和$ t,分别是$ FreeMemory和$ TotalMemory。 所以我想你总共有4gig的内存,这个数字大约是400000美元,比awk在标准配置中使用的字段总数还要多一点。 除了使用meminfo的简单尝试之外,还可以尝试打印指向变量的f / t,然后获得答案。
请注意,使用/proc/meminfo的SwapFree行来读取信息可能更容易/更强大。
就像是:
$ grep SwapFree /proc/meminfo | awk '{print $2}'
你不需要变量。 你可以使用普通的
awk '{ print $4/$2 }'
从/ proc / meminfo读取它:
lennart@trololol:~$ grep SwapFree /proc/meminfo | awk '{print $2}' 0
我意识到问题是关于使用“自由”和“awk”,但是如果你有SAR运行,那么这会给你最近记录的百分比值:
sar -S|tail -2|head -1|awk '{print $5}'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。