用awk多行编程示例,输出CPU简要信息
命令行$awk -f my_awk.awk /proc/cpuinfo
参考学习地址:
http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html
http://www.gnu.org/software/gawk/manual/gawk.html
my_awk.awk源码:
#!/bin/awk
BEGIN {
model=0;hz=0;
cores=0;
printf("========Brief CPU info=========\n");
}
#body
{
if((NF==9) && ($1=="model") && ($2=="name"))
{
if(model==0)
{
printf("CPU model:%s %s %s %s %s %s\n", $4, $5, $6, $7, $8, $9);
}
model = model +1;
}
if(hz==0 && NF==4&& $1=="cpu" && $2=="MHz")
{
printf("CPU frequency:%.3f(%s)\n",$4,$2);
hz=1;
}
if(cores==0 && NF==4&& $1=="cpu" && $2=="cores")
{
printf("CPU cores number:%d\n",$4);
cores=1;
}
}
END {
printf("Total %d CPUs\n",model);
printf("========END=========\n");
}
结果如下:
========Brief CPU info=========
CPU model:Intel(R) Xeon(R) CPU X5570 @ 2.93GHzCPU frequency:2933.526(MHz)
CPU cores number:4
Total 8 CPUs
========END=========