获取linux系统中mem占用率 -- awk使用详解
来源:互联网 发布:2083欧洲独立宣言 知乎 编辑:程序博客网 时间:2024/06/06 02:32
获取linux系统中mem占用率 – awk使用详解
本文通过实现获取系统的mem占用率为切入点,主要对awk命令的一些常用用法进行分析。
awk命令
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。
代码块
#!/bin/sh MemTotal=$(cat /proc/meminfo |grep MemTotal|awk '{ print $2}') MemFree=$(cat /proc/meminfo |grep MemFree|awk '{ print $2}') echo "MemFree/MemTotal=$((MemFree*100/$MemTotal))" echo "this is end,byebye~"
执行结果
结果分析
其实该段代码主要就是 cat /proc/meminfo |grep MemTotal|awk '{ print $2}'
其中, cat /proc/meminfo |grep MemTotal
的执行结果是MemTotal: 4131724 kB
而awk的功能也很明确,取出第二个字符串4131724,也就是
另外,可以依照上面的命令获取其他的数据,比如/proc/stat里面的数据来计算cpu的使用率,也可以结合fconfig得到本机IP。
#!/bin/sh echo "hello,i am just a test" num=$(ifconfig eth0 | grep "inet " | awk '{ print $2}') echo $num echo "this is end,byebye~"
awk命令分析
awk脚本的基本结构
awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file
BEGIN语句块、能够使用模式匹配的通用语句块、END语句块3部分组成,这三个部分是可选的。任意一个部分都可以不出现在脚本中,脚本通常是被单引号或双引号中,例如: awk ‘BEGIN{ i=0 } { i++ } END{ print i }’ filename 和awk “BEGIN{ i=0 } { i++ } END{ print i }” filename
- 第一步:执行BEGIN{ commands }语句块中的语句;
- 第二步:从文件或标准输入(stdin)读取一行,然后执行pattern{ commands }语句块,它逐行扫描文件,从第一行到最后一行重复这个过程,直到文件全部被读取完毕。
- 第三步:当读至输入流末尾时,执行END{ commands }语句块。
echo -e "A B C D E F" | awk 'BEGIN{ print "Start" } { print } END{ print "End" }'StartA B C D E FEnd
这里指出,awk既可以处理文件(file)中的命令,可以接收的是其他命令的的数据(管道)。
awk内置变量(预定义变量)
说明:[A][N][P][G]表示第一个支持变量的工具,[A]=awk、[N]=nawk、[P]=POSIXawk、[G]=gawk
$n 当前记录的第n个字段,比如n为1表示第一个字段,n为2表示第二个字段。
- [N] ARGC 命令行参数的数目。
- [N] ARGV 包含命令行参数的数组。
- [P] ENVIRON 环境变量关联数组。
- [G] FIELDWIDTHS 字段宽度列表(用空格键分隔)。
- [A] FILENAME 当前输入文件的名。
- [A] FS 字段分隔符(默认是任何空格)。
- [A] NF 表示字段数,在执行过程中对应于当前的字段数。
- [A] NR 表示记录数,在执行过程中对应于当前的行号。
- [A] OFS 输出字段分隔符(默认值是一个空格)。
- [A] RS 记录分隔符(默认是一个换行符)。
- [N] RSTART 由match函数所匹配的字符串的第一个位置。
- [N] SUBSEP 数组下标分隔符(默认值是34)。
- 获取linux系统中mem占用率 -- awk使用详解
- 编程获取Linux的cpu占用率和mem使用情况
- 获取Linux的cpu占用率和mem使用情况
- 编程获取Linux的cpu占用率和mem使用情况
- 编程获取Linux的cpu占用率和 mem使用情况
- 如何获取cpu占用率和 mem使用情况
- 如何获取cpu占用率和 mem使用情况
- linux awk使用详解
- linux中awk命令详解
- linux中awk命令详解
- linux AWK命令使用详解
- 如何在Linux中使用awk工具详解
- Linux中awk使用大全
- awk使用shell变量,shell获取awk中…
- Linux系统下awk命令使用
- linux 系统下awk命令的使用
- Linux下的awk使用详解
- 编程获取linux cpu占用率,内存占用率以及硬盘使用率
- 八数码
- JavaScript原型对象prototype
- java将request接受数据转换成map
- 【leetcode】surrounded-regions
- Spring 使用外部属性文件
- 获取linux系统中mem占用率 -- awk使用详解
- lua—GPRS模块开发之I2C OLED模块驱动
- Java 集合工具类 Collections
- 条款 09
- C++随机数生成器mt19937生成随机数的用法
- java实现遍历树形菜单方法——HibernateUtil实现
- 1154: 逆反的01串
- html中的banner自适应屏幕代码
- 面向对象