Linux------awk使用
一、分析日志文件
课前基础:
awk基本使用
awk ' BEGIN{ print "start" } {commands} END{ print "end" }'
先执行BEIGN语句,然后重复的执行commands行,直到文件全部读取完毕,读取文件末尾时,执行END语句块。
这个语句可以没有BEGIN、END但是必须有{commands}
1、awk特殊变量:
- NR:记录数量,在执行过程中对应于当前行号
- NF:表示字段数目,执行过程中对应于当前行的字段数
- $0:执行行中的文本内容
- $1:包含第一个字段的文本内容
- $2:包含第二个字段的文本内容
2、将外部变量传递给awk:
借助于-v参数
3、对awk的行进行过滤
awk 'NR <5' 行号小于5;awk 'NR==1,NR==4' 行号在1到5之间的行
awk '/linux/' 得到这个linux样式的行,如果是不包含就是使用'#/linux/'
4、awk自建的内置函数
split、length、substr等等
5、设置字段定界符
默认的是空格,我们可以使用-F '分隔符'
demo演示:
#!/bin/bash
echo $1;
grep $1 /data/logs/login-resin-stdout.log|awk -F ' ' '{ arr[split($21,tmp,":")];print tmp[2] }'
|awk -v var_1=$2 '{arr[$i]++;}END{for (i in arr){if(arr[i]>var_1){print i,arr[i]}}}'
表示的是先文本先按变量$1过滤,然后文本行按照空格分隔,此文本被分成21段,然后将第21段的字符按照字符':'分隔,得到 的数组只要第2的值(注意该数组标量是从1开始),然后统计得到的值重复的次数
6、统计线程swap大于10000的
for i in `ls /proc/|grep -v [a-z]`;do cat /proc/$i/smaps |grep Swap|awk -v
pid=$i 'BEGIN{total=0}{total+=$2}END{if (total >10000){print "pid: " pid " " total " M"}}';done
分享到:
相关推荐
linux-awk.doc
linux-awk-完全手册范本.doc
Vim-101-hacks、Sed-and-Awk-101-Hacks、Linux-101-hacks 英文版(高清)PDF
Linux教程-linux文本处理-awk.docx
本文主要对linux-shell脚本命令中的awk命令进行简单介绍,希望对您有所帮助。
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首 字符。
正是这三个人创造了awk---一个优秀的样式扫描与处理工具。 AWK的功能是什么?与sed和grep很相似,awk是一种样式扫描与处理工具。但其功能却大大强于sed和grep。awk提供了极其强大的功能:它几乎可以完成grep和sed...
利用tcpdump抓包和awk处理写的基于端口的流量统计
Curso-GNU-Linux-AWK-Bash-Git-RSG-y-iGEM-厄瓜多尔
linux命令 AWK 用法 介绍了awk命令的一些简单用法
linux du命令查看文件大小,配合awk会更强大
linux awk 命令大全 awk 常用命令
Linux运维-运维系统服务04-Shell脚本d7-Shell三剑客(下)-17awk结合循环语句使用
11.2.3 Shell编程-字符截取命令-awk命令.mp4 11.2.4 Shell编程-字符截取命令-sed命令.mp4 11.3 Shell编程-字符处理命令.mp4 11.4 Shell编程-条件判断.mp4 11.5.1 Shell编程-流程控制-if语句.mp4 11.5.2 Shell...
linux awk 初级编程
Linux运维-运维系统服务04-Shell脚本d7-Shell三剑客(下)-12awk和正则表达式结合使
Linux运维-运维系统服务04-Shell脚本d7-Shell三剑客(下)-11awk中BEGIN和END使用
Linux AWK使用描述
超详细的Linux实战awk详解,轻松解决文本流问题,干货满满