awk 学习总结
FS?? 设置分隔符,等同于-F
NF?? 代表字段数
$NF? 代表最后一个字段数
NR?? 代表当前处理第几行
NF 最后一个字段数是什么意思??? 按照输出结果 好像是最后一列有多少个字符
netstat -ntl|awk '{print $4}'
//输出第四列
netstat -ntl| awk 'NR==5'
//NR==5 定位到第5行
netstat -ntl|awk 'NR==5 {print $1}'
//定位到第5行输出第一列
netstat -ntl|awk 'END {print $0}'
//定位到最后一行
netstat -ntl |awk 'NR==5 {print $0}' |awk -F: '{print $1}'
//NR==5 定位到第5行
//print? $0 输出整行数据
???//awk??? 进一步筛选
??????//-F:?? 是以:为分割符
??????//print $1 是输出分割后的第一个
netstat -ntl|awk 'END{print $0}'|awk -F: '{print $1}'
//同上 只是定位到了组后一行
netstat -ntl|awk 'NR==5 {print NF}'
//NR==5 定位到第5行
//print NF 输出多少个字段数
netstat -ntl|grep [8984]|awk '{print $2}'
//查找带有8984的 然后输出第2列
netstat -ntl|awk -F: '{a=$NF} END {print a}'
//赋值 打印最后一行的最后一段? 和 netstat -ntl|awk -F: 'END{print $NF}' 相同
netstat -ntl|awk -F: '{a=$NF} {print a}' //打印最后一段
netstat -ntl|awk 'BEGIN {a=0}{a=a+NF}{print a}'?
//赋值累加 逐个累加值输出
netstat -ntl|awk 'BEGIN {a=0}{a=a+NF} END {print a}'
//输出最后的和 END 为结束计算 然后再打印
netstat -ntl |awk 'BEGIN {a=0} {if(NF>=8) a=a+1} END {print a}'
//同上
echo |awk '{print "total sum"} {print "\t"} {print "2 3"}'
//下面这个是调用文件
vim a.txt? //建立文件
BEGIN { for(a=0;a<=10;a++) {print a} } //文件里面的内容
awk -f a.txt //直接执行
?等同 echo |awk 'BEGIN {for (a=0;a<=10;a++){print a}}'
ps -ef|grep java |awk '{print "进程号\t"} {print $1}'
df -h |awk '{print $5}' |awk -F% 'BEGIN {if($1>50) {print $}}'
?
df -h| awk '{print $5$1}'|awk -F% '{a=0} {a=$1}{ if(a>50) print $1}' |sort