Linux - awk 文本处理工具五
awk 线上处理常用模式
awk 处理复杂日志
6.19:
DHB_014_号百总机服务业务日报:广州 到达数异常!
DHB_023_号百漏话提醒日报:珠海 到达数异常!
6.20:
DHB_014_号百总机服务业务日报:广州 到达数异常!到 awk -F '[_ :]+' 'NF>2{print $4,$1"_"$2,b |"sort";next}{b=$1}'
# 当前行NF小于等于2 只针对{print $,$"_"$,b |"sort";next} 有效 即 6.19:行跳过此操作, {b=$} 仍然执行
# 当前行NF大于2 执行到 next 强制跳过本行,即跳过后面的 {b=$}
广州 DHB_014 6.19
一些线上分析处理
分析图片服务日志,把日志(每个图片访问次数*图片大小的总和)排行,也就是计算每个url的总访问大小
说明:本题生产环境应用:这个功能可以用于IDC网站流量带宽很高,然后通过分析服务器日志哪些元素占用流量过大,进而进行优化或裁剪该图片,压缩js等措施。
本题需要输出三个指标: 【被访问次数】 【访问次数*单个被访问文件大小】 【文件名(带URL)】
测试数据:
192.168.1.101 - - [08/Dec/2017:15:43:56 +0800] "GET /static/images/photos/2.jpg HTTP/1.1" 200 11299
awk '{array_num[$7]++;array_size[$7]+=$10}END{for(i in array_num) {print array_num[i]" "array_size[i]" "i}}'
一些网上练习题:
已知:
wang
cui
zhao
liu
liu
chang
li 通过第一个域找出字符长度为4的
当第二列值大于3时,创建空白文件,文件名为当前行第一个域$ (touch $)
将文档中 liu 字符串替换为 hong
求第二列的和
求第二列的平均值
求第二列中的最大值
将第一列过滤重复后,列出每一项,每一项的出现次数,每一项的大小总和
处理方式
、字符串长度
awk 'length($1)=="4"{print $1}'
、执行系统命令
awk '{if($2>3){system ("touch "$1)}}'
、gsub(/r/,"s",域) 在指定域(默认$)中用s替代r (sed 's///g')
awk '{gsub(/liu/,"hong",$1);print $0}' a.txt
、列求和
awk '{a+=$2}END{print a}'
、列求平均值
awk '{a+=$2}END{print a/NR}'
awk '{a+=$2;b++}END{print a,a/b}'
、列求最大值
awk 'BEGIN{a=0}{if($2>a) a=$2 }END{print a}'
、将第一列过滤重复列出每一项,每一项的出现次数,每一项的大小总和
awk '{a[$1]++;b[$1]+=$2}END{for(i in a){print i,a[i],b[i]}}'
Linux - awk 文本处理工具五的更多相关文章
- Linux - awk 文本处理工具一
AWK AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一:awk经过改进生成的新的版本nawk,gawk,现在默认linux系统下日常使用的是gawk,用命 ...
- Linux - awk 文本处理工具三
AWK 文件打印匹配 格式示例 awk '/Tom/' file # 打印匹配到得行 awk '/^Tom/{print $1}' # 匹配Tom开头的行 打印第一个字段 awk '$1 !~ /ly ...
- Linux - awk 文本处理工具六 - 日志关键字筛选
查看多少行 ? awk '{print NR}' access.log |tail -n1 日期时间筛选检测 awk '/Dec 10/ {print $0}' /opt/mongod/log/mon ...
- Linux - awk 文本处理工具四
awk 常用示例 获取本机 IP 方式 /sbin/ifconfig |awk -v RS="Bcast:" '{print $NF}'|awk -F: '/addr/{print ...
- AWK文本处理工具(Linux)
AWK文本处理工具(Linux) PS:刚开始实习,就给了个处理百万级别数据的任务,以前学过SHELL的一些东西sed/awk之类的处理,但是也没有具体的应用,只是在10几行10几列的小数据操作过,所 ...
- Linux的文本处理工具浅谈-awk sed grep
Linux的文本处理工具浅谈 awk 老大 [功能说明] 用于文本处理的语言(取行,过滤),支持正则 NR代表行数,$n取某一列,$NF最后一列 NR==20,NR==30 从20行到30行 FS ...
- Linux shell文本处理工具
搞定Linux Shell文本处理工具,看完这篇集锦就够了 Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,通常被Python等脚本代替.既然是基本功,那就需要掌握,毕竟学习She ...
- Linux Shell 文本处理工具集锦--Awk―sed―cut(row-based, column-based),find、grep、xargs、sort、uniq、tr、cut、paste、wc
本文将介绍Linux下使用Shell处理文本时最常用的工具:find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk:提供的例子和参数都是最常用和最为实用的: ...
- Linux 之 awk文本分析工具
AWK是一种处理文本文件的语言,是一个强大的文本分析工具.Linux环境中自带. awk调用方法 命令行 awk [-F field-separator] 'commands' input-file( ...
随机推荐
- 用C语言编程自动生成四则运算
#include<stdio.h>#include<stdlib.h>#include <time.h>#define N 30main(){ int a,b,k, ...
- 第二章:蓝色巨人 IBM公司
COBOL(面向商业的通用语言) DEC(数字设备公司)华生实验室 造成失败的原因: 1,没有经营终端消费型产品 2,技术的流失 3.没有在意对手 成为的方法:合并,保守,谨慎 研究员的工作: 1,发 ...
- pandas读取csv数据时设置index
比如读取数据时想把第一列设为index,那么只需要简单的 pd.read_csv("new_wordvecter.csv",index_col=[0]) 这里index_col可以 ...
- Web网络服务介绍
Web网络服务也叫WWW(World Wide Web),一般是指能够让用户通过浏览器访问到互联网中文档资源服务.目前提供WEB网络服务的程序有Apache .Nginx 和 IIS 等等,Web ...
- ES6学习笔记(五):Class和Module
Class Class 只是一个语法糖,其功能用es5也能实现,但是比es5更符合类的期待 定义: constructor代表构造方法,而this指向new 生成的实例 定义类方法时,可以不使用fun ...
- bzoj1214 [HNOI2004]FTP服务器
题目挺复杂的. 但有一点好,就是这题没数据,交个空程序就好了. begin end.
- CF1073E Segment Sum
数位DP,求[L,R]区间内所有"数字内包含的不同数码不超过k个的数字"之和.在状态上加一维状态压缩表示含有的数码集合.一开始读错题以为是求数字的个数.读对题之后调了一会儿. #i ...
- Java移动文件到另外一个目录
private void moveTotherFolders(String pathName,String fileName,String ansPath){ String startPath = t ...
- Oracle 查看正在执行的SQL语句
SELECT A.MACHINE, username,a.SID,a.SERIAL#, sql_text,LOGON_TIME from v$session a, v$sql b where a.sq ...
- winform程序关闭界面时弹出提示框
void Form1_FormClosing(object sender, FormClosingEventArgs e){ if (MessageBox.Show( "窗口关闭后,数据即将 ...