awk结合数组统计】的更多相关文章

1.统计用户登录类型 #!/bin/bashdeclare -A  shells (定义关联数组shells)while read ll   (读取/etc/passwd,ll为变量) dotype=`echo $ll | awk -F: '{print $7}'`  (type为变量,切割ll后的变量)let shells[$type]++done < /etc/passwd for i in ${!shells[@]}do echo "$i ::::: ${shells[$i]}&qu…
shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计 shell中的数组的用法: shell数组中的下标是从0开始的 array=("Allen" "Mike" "Messi" "Jerry" "Hanmeimei" "Wang") 打印元素: ]} 打印元素个数: echo ${#array[@]} 打印某个元素长度: ]} 给元素赋值: array[]=…
转自ChinaUnix论坛,感谢作者整理. 在文本处理的工作中,awk的数组是必不可少的工具,在这里,同样以总结经验和教训的方式和大家分享下我的一些学习心得,如有错误的地方,请大家指正和补充. awk的数组,一种关联数组(Associative Arrays),下标可以是数字和字符串.因无需对数组名和元素提前声明,也无需指定元素个数 ,所以awk的数组使用非常灵活.首先介绍下几个awk数组相关的知识点: <1>建立数组 array[index] = value :数组名array,下标inde…
awk的数组跟其他程序设计语言的数组有所不同:1.可以直接在awk中定义数组:2.数组元素的初始值为0或空字符串,除非他们被显示的指定初始化:3.数组可以自动扩展:4.都是关联数组,数字下标也会转成字符串索引. split函数的返回值是数组长度.awk中数组的下标是从1开始的. $ echo ""|awk 'BEGIN{a="here is test";len=split(a,arr," ")}{print len, arr[1]}' 3 her…
最近由于数据迁移过,有些用户信息需要再次确认下,也许数据量比较大,但是需要最终确认的比如说是用户ID和其对应的用户积分数,这样就会导致出现文本a(老的数据),文本b(新的数据).比如 这是文本a.txt 文本b.txt如下 列举的文本例子只是为了说明使用方法列举的最简单的文本,实际数据可能要复杂的多,可能会出现b.txt 中出现的ID在a.txt中没有出现等等情况,这里只是为了说明awk 关联数组的高级应用,方便大家理解. 我们会发下b.txt中的ID 为1102 和1103 用户的积分数与先前…
使用bash关联数组统计单词 从bash 4开始支持关联数组,使用前需要声明,即 declare -A map map[key1]=value1 map[key2]=value2 map=([key1]=value1 [key2]=value2) # 获取keys keys=${!map[@]} # 获取values values=${map[@]} 利用关联数组,很容易实现单词统计,源码文件wordCount.sh #!/bin/bash if [[ $# -lt 1 ]] then echo…
处理以下文件内容,将域名取出并根据域名进行计数排序处理:(百度和sohu面试题) http://www.etiantian.org/index.html http://www.etiantian.org/1.html http://post.etiantian.org/index.html http://mp3.etiantian.org/index.html http://www.etiantian.org/3.html http://post.etiantian.org/2.html 要求结…
数组 在排序前需要对数组有所了解,数组是用于存储一系列值得变量,这些值之间通常是由联系的,可通过索引来访问数组的值,索引需要用括号括起来,基本格式如下: array[index]=value awk数组无须定义数组类型和大小而可以直接赋值使用. 1.关联数组 关联数组是指数组的索引可以是字符串,也可以是数字.对于每个数组元素,awk会自动建立索引-数值元素值对.这里索引不代表该数值存储地址信息. 可以用for循环来访问数组,语法如下: for (variable in array) do som…
题目链接:https://vjudge.net/contest/70655#problem/C 后缀数组的又一神奇应用.不同子串的个数,实际上就是所有后缀的不同前缀的个数. 考虑所有的后缀按照rank排好了,我们现在已知height,也就是相邻的两个的最长公共前缀是多少.那么不同的子串个数怎么统计呢? 从第一个串开始考虑,ans+=L1.再看第二个串,会加进来几个不同的前缀呢?就是ans+=L2-height[2].第三个类似,会加进来ans+=L3-height[3]…… 因此最后的结果就是a…
题目链接  rausen loves cakes 题意  给出一个序列和若干次修改和查询.修改为把序列中所有颜色为$x$的修改为$y$, 查询为询问当前$[x, y]$对应的区间中有多少连续颜色段.   序列长度为$n$,总操作数为$q$,满足$1 <= n <= 10^{5}, 1 <= q <= 10^{5}$ 初始化的时候若当前颜色和前一个位置的颜色不相等的时候则在这个位置的树状数组中打标记. 修改的时候,颜色权值数小的往大的合并,这样满足总合并复杂度为$O(nlogn)$,…
https://blog.csdn.net/qq_28766327/article/details/78069989 在服务器开发中,我们经常会写入大量的日志文件.有时候我们需要对这些日志文件进行统计.Linux中我们可以利用以下命令简单高效的实现这一功能. 需要用到的命令简介 cat命令 cat命令主要有三大功能 1.一次显示整个文件 cat filename 2.创建一个文件 cat > fileName 3.将几个文件合并为一个文件 cat file1 file2 > file 参数: …
昊昊爱运动 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  Status 昊昊喜欢运动 他N天内会参加M种运动(每种运动用一个[1,m]的整数表示) 舍友有Q个问题 问昊昊第l天到第r天参加了多少种不同的运动 Input 输入两个数N, M (1≤N≤2000, 1≤M≤100); 输入N个数ai表示在第i天昊昊做了第ai类型的运动; 输入一个数Q(1≤Q≤10…
#统计所有接口总量awk -F ' ' '{a[$7]++} END{for(i in a){print i,a[i] | "sort -r -k 7"}}' accesslog/211_10.log > result.txt #按照数量排序awk -F ' ' '{a[$7]++} END{for(i in a){print i,a[i] | "sort -r -n -k2"}}' accesslog/211_10.log >result.txt#…
背景:之前是一个数学妞,所以操作系统类的就由windows系列霸占了,甚至“cmd"是什么东西,环境变量是什么概念......其实说那么多就是想表明一点:你现在很有可能比我知道得多得多呢!   介绍awk: 1)awk是什么东西? awk其实就是一种在linux上的小工具,你可以理解其是一个方便文本处理,或者日志数据处理的插件. 2)awk的基本使用方法及场景 这个部分我觉得我再说什么都不如别人大神说得好,附上链接大伙看看: http://www.cnblogs.com/ggjucheng/ar…
Ping pong Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2302   Accepted: 879 Description N(3<=N<=20000) ping pong players live along a west-east street(consider the street as a line segment). Each player has a unique skill rank. To im…
Cows Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 15405   Accepted: 5133 Description Farmer John's cows have discovered that the clover growing along the ridge of the hill (which we can think of as a one-dimensional number line) in hi…
Japan Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 24151   Accepted: 6535 Description Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for the venue. Japan is tall island with N cities on the East coas…
Ping pong Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2641   Accepted: 978 Description N(3<=N<=20000) ping pong players live along a west-east street(consider the street as a line segment). Each player has a unique skill rank. To im…
public class CountLetterInArray { public static void main(String[] args) { char[] chars = createArray(); System.out.println("The lowercase letters are: "); displayArray(chars); int[] counts = countLetters(chars); System.out.println(" "…
awk 常用选项总结 在 awk 中使用外部的环境变量 (-v) awk -v num2="$num1" -v var1="$var" 'BEGIN{print num2,var1}' -f 选项 文件中读取表达式 1.awk BEGIN{ str="I hava a tream" location=index(str,"ea") print location } awk -f 1.awk 2.wak BEGIN{ str=&…
知识点: 1)数组 数组是用来存储一系列值的变量,可通过索引来访问数组的值. Awk中数组称为关联数组,因为它的下标(索引)可以是数字也可以是字符串. 下标通常称为键,数组元素的键和值存储在Awk程序内部的一个表中,该表采用散列算法,因此数组元素是随机排序. 数组格式:array[index]=value 1.Nginx日志分析 日志格式:'$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_…
突然发现awk原来可以统计同一数据在要处理的文件中所出现的次数.原来的时候为了分析数据还自己写程序,哎,无语,当时还以为自己多强,手工分析不过来的东西写程序处理.现在想来实在是年少轻狂.解决问题嘛,不讲究方式,只要快速高效的完成任务就OK了. 好,今天小试牛刀统计了一下passwd文件中shell部分重复的shell名和出现的次数,看命令: $awk -F: '{a[$7]++}END{for (i in a) print i" "a[i]}' /etc/passwd /bin/fal…
awk程序中允许使用字符串当做数组的下标(index).利用这个特色十分有助于资料统计工作.(使用字符串当下标的数组称为Associative Array) 首先建立一个数据文件,并取名为 reg.dat.此为一学生注册的资料文件:第一栏为学生姓名,其后为该生所修课程. awk中数组的特性 1. 使用字符串当数组的下标(index). 2. 使用数组前不须声明数组名及其大小. 例如:希望用数组来记录 reg.dat 中各门课程的修课人数.这情况,有两项信息必须储存: (a) 课程名称,如: "O…
grep 或 egrep 或awk 过滤两个或多个关键词: grep -E ‘123|abc’ filename // 找出文件(filename)中包含123或者包含abc的行 egrep ‘123|abc’ filename //用egrep同样可以实现 awk ‘/123|abc/’ filename // awk 的实现方式 假如某个广告点击数据记录在文件里面,文件中每一行数据由‘时间’,‘uid’两个字段组成,要求每分钟统计某个uid带来的点击量并计入数据库,可以用shell来实现该功…
起因 这是今天我线上出了一个bug,需要查看日志并统计一个我需要的信息出现的频率,可以叫做分组统计. 日志文件部分内容 00:09:07.655 [showcase_backend][topsdk] ERROR - 2017-06-27 00:09:07.655^_^23090346^_^taobao.item.recommend.add^_^10.28.42.60^_^Linux^_^20^_^http://gw.api.taobao.com/router/rest^_^app_key=230…
文本处理的工作中,awk的数组是必不可少的工具,在这里,同样以总结经验和教训的方式和大家分享下我的一些学习心得,如有错误的地方,请大家指正和补充. awk的数组,一种关联数组(Associative Arrays),下标可以是数字和字符串.因无需对数组名和元素提前声明,也无需指定元素个数 ,所以awk的数组使用非常灵活. 首先介绍下几个awk数组相关的知识点: <1>建立数组 array[index] = value :数组名array,下标index以及相应的值value. 复制代码 <…
AWK的数组用法跟javascript类似. 1,定义数组 awk 'BEGIN{a[0]="zhangsan";a[1]="lisi";print a[0]}' 2,打印一个没有定义的数组项,值为空 awk 'BEGIN{a[0]="zhangsan";a[1]="lisi";print a[2]}' 3,判断一个数组项 是否存在,用 ( 下标 in 数组 ) ghostwu@dev:~/linux/awk$ awk 'BE…
awk运算 awk以脚本方式运行 #!/bin/awk BEGIN{ arr[1]="maotai"; arr[2]="maotai" for(k in arr) print k,arr[k] } [root@n1 ~]# awk -f a.sh 1 maotai 2 maomao awk以命令行方法 [root@n1 ~]# awk 'BEGIN{arr[1]="maotai"; arr[2]="maotai";} END{…
知识点: 1)数组 数组是用来存储一系列值的变量,可通过索引来访问数组的值. Awk中数组称为关联数组,因为它的下标(索引)可以是数字也可以是字符串. 下标通常称为键,数组元素的键和值存储在Awk程序内部的一个表中,该表采用散列算法,因此数组元素是随机排序. 数组格式:array[index]=value 1.Nginx日志分析 日志格式:'$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_…
1.其它编程语言数组的下标一般从0开始,awk中数组下标默认从1开始,也可以从0开始设置: awk 'BEGIN{huluwa[0]="大娃";huluwa[1]="二娃";huluwa[3]="三娃";print huluwa[1]}' 二娃 awk 'BEGIN{huluwa[0]="大娃";huluwa[1]="二娃";huluwa[3]="三娃";huluwa[4]="…