Linux高级运维命令(awk)
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
引言
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
awk有3个不同版本: awk
、nawk
和gawk
,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。
awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
常用示例
打印命令
ls| grep '/'|awk '{print "rm -rf "$0"build/"}'
指定目录重命名(项目目录下的所有pom.xml文件修改为pom.xml-bak)
find . -name 'pom.xml'|awk '{cmd="mv "$0" "$0"-bak"; system(cmd)}'
统计所有状态码为 404 的请求
awk '($9 ~ /404/)' m.access.log |awk '{print $9, $7}' |sort
查盗链
awk -F\" '($2 ~ /\.(jpg|gif|png)/ && $4 !~ /^http:\/\/www\.example\.com/) {print $4}' access.log \ |sort |uniq -c |sort
列出响应时间超过 5 秒的请求
awk '($NF > 5){print $0}' access.log |awk -F\" '{print $2}' |sort -n|uniq -c|sort -nr|head -20
删除名称包含4.3.5.RELEASE
的所有文件
find . -name '*4.3.5.RELEASE*' |awk '{cmd="sudo rm -rf "$0; system(cmd)}'
只打印出命令,手工执行
find . -name '*4.3.5.RELEASE*' |awk '{print "rm -rf '\''"$0"'\''"}'
划重点啊亲(高频面试题,有木有??)
统计访问最多的前十个IP地址
awk '{print $1}' m.access.log |sort |uniq -c |sort -nr |head -10
其他
转义:'\''
,打印单引号(用两个单引号括住一个转义的单引号)
附:
Linux高级运维命令(sed)
Linux高级运维命令(scp)
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献4条内容
所有评论(0)