1.介绍

sed是基于行的处理,而awk更加关注对列的处理。基本语法如下:

内部变量:


NF= numbers of field;
NR= numbers of rows;
FS = file seperator;

2.使用例子

2.1 无条件,获取指定列内容

#top -n1表示只刷新1次结果,NR>6表示忽略开头的6行内容
top -n1 | awk 'NR>6 {print "CPU:"$10}'

2.2 带条件,获取指定要求下的指定列的内容

#获取一次top命令下,PID,CPU,MEM的信息,并且CPU利用率在0%-90%,内存利用率在0%-90%;最后的sort -n表示按数值排序,k表示按哪一列的第几个字符开始排序,因为前面加了Pid:,所以已经有4个字符,我们从第一列的第5个字符开始排序,才能正常按pid显示!
top -n1 | awk 'NR>7&&($10>=0&&$10<=90)&&($11>=0&&$11<=90)  {print "Pid:"$2 "\t " "CPU%:" $10 "\t" "MEM%:" $11 "\t""COMMAND:"$13}' |sort -n -k 1.5