Linux awk+uniq+sort 统计文件中某字符串出现次数并排序_刘宇LY的博客-CSDN博客_awk 统计 次数 排序


本站和网页 https://blog.csdn.net/qq_28766327/article/details/78069989 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Linux awk+uniq+sort 统计文件中某字符串出现次数并排序_刘宇LY的博客-CSDN博客_awk 统计 次数 排序
Linux awk+uniq+sort 统计文件中某字符串出现次数并排序
置顶
刘宇LY
于 2017-09-23 12:05:19 发布
5238
收藏
10
分类专栏:
linux
文章标签:
linux
awk
合并
服务器
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_28766327/article/details/78069989
版权
linux
专栏收录该内容
11 篇文章
0 订阅
订阅专栏
    在服务器开发中,我们经常会写入大量的日志文件。有时候我们需要对这些日志文件进行统计。Linux中我们可以利用以下命令简单高效的实现这一功能。
需要用到的命令简介
cat命令 cat命令主要有三大功能 1.一次显示整个文件 cat filename 2.创建一个文件 cat > fileName 3.将几个文件合并为一个文件 cat file1 file2 > file 参数:   -n 或 --number 由 1 开始对所有输出的行数编号   -b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号   -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行   -v 或 --show-nonprinting | 管道 管道的作用是将左边命令的输出作为右边命令的输入 awk 命令 awk 是行处理器,优点是处理庞大文件时不会出现内存溢出或处理缓慢的问题,通常用来格式化文本信息。awk依次对每一行进行处理,然后输出。 命令形式 awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file   [-F|-f|-v] 大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value   ’ ’ 引用代码块   BEGIN 初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符   // 匹配代码块,可以使字符串或正则表达式   {} 命令代码块,包含一条或多条命令   ;多条命令使用分号分隔   END 结尾代码块,对每一行进行处理后再执行的代码块,主要进行最终计算或输出 由于篇幅限制,可自行查找更详细的信息。这里awk命令的作用是从文件中每一行取出我们需要的字符串 sort 命令 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。   -b:忽略每行前面开始出的空格字符;   -c:检查文件是否已经按照顺序排序;   -d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;   -f:排序时,将小写字母视为大写字母;   -i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;   -m:将几个排序号的文件进行合并;   -M:将前面3个字母依照月份的缩写进行排序;   -n:依照数值的大小排序;   -o<输出文件>:将排序后的结果存入制定的文件;   -r:以相反的顺序来排序;   -t<分隔字符>:指定排序时所用的栏位分隔字符; uniq 命令 uniq 命令用于报告或忽略文件中的重复行,一般与sort命令结合使用    -c或——count:在每列旁边显示该行重复出现的次数;   -d或–repeated:仅显示重复出现的行列;   -f<栏位>或–skip-fields=<栏位>:忽略比较指定的栏位;   -s<字符位置>或–skip-chars=<字符位置>:忽略比较指定的字符;   -u或——unique:仅显示出一次的行列;   -w<字符位置>或–check-chars=<字符位置>:指定要比较的字符。 > 命令 > 是定向输出到文件,如果文件不存在,就创建文件。如果文件存在,就将其清空 另外 >>是将输出内容追加到目标文件中。其他同>
现在我们开始
1 读入文件
cat test.log.2017-09-20
执行结果     
2 从每一行取出我们需要的字符串
cat check_info.log.2017-09-20 | awk -F '(txt=|&client)' '{print $2}'
awk 命令中 -F 指定每一行的分隔符 在这里 '(txt=|&client)‘是分隔符,它是一个正则表达式。意义是,用’txt=‘或’&client’ 作为分隔符 举例来说下面这行
sdate=2017-09-20 23:59:32&txt=com.ford.fordmobile&client_id=x
会被分割成
sdate=2017-09-20 23:59:32&
com.ford.fordmobile
_id=x
三部分 其中第二部分"com.ford.fordmobile"是我所需要的字段
而’{print $2}'的意思是将每行得到的第二个值打印出来,$0代表获取的所有值 执行效果如下     
3 对行进行排序 先排序是因为去重与统计的 'unip’命令只能处理相邻行
cat check_info.log.2017-09-20 | awk -F '(txt=|&client)' '{print $2}'|sort
执行结果 可以看到相同行已经被排在了一起
4 统计数量与去重
cat check_info.log.2017-09-20 | awk -F '(txt=|&client)' '{print $2}'| sort | uniq -c
uniq -c 中的-c 代表在每列旁边显示该行重复出现的次数 执行结果
5 按重复次数排序
cat check_info.log.2017-09-20 | awk -F '(txt=|&client)' '{print $2}'| sort | uniq -c | sort -nr
sort 的 -n:依照数值的大小排序;-r 按照相反顺序排列
执行结果
6 将结果输出到文件中
cat check_info.log.2017-09-20 | awk -F '(txt=|&client)' '{print $2}'| sort | uniq -c | sort -nr > testfile
可以看到我们当前目录已有testfile 目录 用vim 打开可以看到
终于写完了,点个赞呗!
。:.゚ヽ(。◕‿◕。)ノ゚.:。+゚
如果有帮到您,打个赏呗
刘宇LY
关注
关注
点赞
10
收藏
打赏
评论
Linux awk+uniq+sort 统计文件中某字符串出现次数并排序
在服务器开发中,我们经常会写入大量的日志文件。有时候我们需要对这些日志文件进行统计。Linux中我们可以利用以下命令简单高效的实现这一功能。需要用到的命令简介cat命令 cat命令主要有三大功能 1.一次显示整个文件 catfilename2.创建一个文件 cat filename 2.创建一个文件 cat > fileName 3.将几个文件合并为一个文件 $ cat f
复制链接
扫一扫
专栏目录
统计文件中的所有字符串出现的次数
09-25
统计文件中的所有字符串出现的次数,在行尾未完的字符用"-"连接,c语言编写,包括"rdline.c","abc",编译"rdline.c"后直接,运行就行,不要加参数,会自动读取"abc"中的内容。
awk统计文件中某关键词出现次数的命令
01-20
awk -F “” ‘{for(i=1;i<=NF;++i) if($i==”a”) ++sum}END{print sum}’ test.c[root@xiaobb 5906]# awk ‘{for(i=1;i<=NF;++i) if($i==”test”) ++sum}END{print sum}’ test.c6[root@xiaobb 5906]# cat test.ctest testktesttesta testtest al testltest
您可能感兴趣的文章:IOS计步器功能实现之Healthkit和CMPedometerJa
评论 2
您还未登录,请先
登录
后发表或查看评论
Linux-awk数组
yayaqwl的博客
11-29
979
linux awk数组
Linux系统中统计文件中某个字符出现次数命令详细教程
最新发布
qq_42716761的博客
10-23
760
在日常工作之后我们可以需要统计日志或者文件中某个字符出现的次数或者是行数,今天呢长青就给大家带来一期详细的介绍,赶快来看看吧!
awk、uniq、sort三个命令的基本用法
weixin_33769125的博客
11-24
573
今天对awk、uniq、sort三个命令做了基础功能的学习,这里自己记录一下:1.awk(数据处理工具,将一行分割成多个“字段”来处理)awk -F '文本切割符'‘{处理过程}’ 文件名称如:cat /ect/passwd | awk -F ':' '{print $1}' #以:分割,打印第一列的数据;如果为$0表示整个文件内容cat /etc/...
shell基础---awk+uniq+sort 统计文件中某字符串出现次数并排序
会哭的雨@的博客
09-20
2132
在服务器开发中,我们经常会写入大量的日志文件。有时候我们需要对这些日志文件进行统计。Linux中我们可以利用以下命令简单高效的实现这一功能。
需要用到的命令简介
cat命令
cat命令主要有三大功能
1.一次显示整个文件 cat filename
2.创建一个文件 cat > fileName
3.将几个文件合并为一个文件 cat file1 file2 > file
参数:
-n 或 –number 由 1 开始对所有输出的行数编号
-b 或 –num...
Shell中统计字符串出现次数的方法
sinat_34241861的博客
12-19
3578
方法1:使用grep命令进行统计
grep -o ‘字符串’ file |wc -l
方法2:使用awk命令进行统计
awk -v RS="@#$j" ‘{print gsub(/字符串/,"&")}’ file
方法3:使用awk命令进行统计的方法
awk ‘{s+=gsub(/字符串/,"&")}END{print s}’ file
...
如何反转一个String,如何统计一个String中的某字符个数
Meiko记录
10-27
191
如何判断一个字符串中某个字符出现的次数?
在直接问这个问题之前,面试官先问了我下面这个问题:
请说一下String常用的方法有哪些?
该问题其实是考察Java基础,毕竟String类在平时的开发中使用非常广泛,我当时主要说了以下方法:
length
equals
trim
substring
concat
indexOf
lastIndexOf
replace
split
toLowerCase
toUpperCase
以上只是面试时我想到的一少部分方法,更多String的方
linux字符串排序文件,Linux awk+uniq+sort 统计文件中某字符串出现次数并排序
weixin_32596045的博客
04-30
649
https://blog.csdn.net/qq_28766327/article/details/78069989在服务器开发中,我们经常会写入大量的日志文件。有时候我们需要对这些日志文件进行统计。Linux中我们可以利用以下命令简单高效的实现这一功能。需要用到的命令简介cat命令cat命令主要有三大功能1.一次显示整个文件 cat filename2.创建一个文件 cat > fileN...
Centos awk 命令
一直被模仿,从未被超越
11-20
1165
AWK
awk 其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
awk 是一种......
Linux Shell之统计某个字符串在文件中的出现次数
二木成林
12-14
5740
Linux Shell之统计某个字符串在文件中的出现次数
linux命令统计文件中某个字符串出现的次数
weixin_39431975的博客
04-20
3935
引用 https://www.cnblogs.com/sxFu/p/12033952.html
1、使用grep
linux grep命令在我的随笔linux分类里有过简单的介绍,这里就只简单的介绍下使用grep命令统计某个文件这某个字符串出现的次数,首先介绍grep命令的几个参数,详细参数请自行找资料学习。
-a 或 --text : 不要忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之.
统计文件中出现次数最多的前10个单词
jiaoyun007的专栏
07-05
3111
实例
cat logt.log|sort -s -t '-' -k1n |awk '{print $1;}'|uniq -c|sort -k1nr|head -100
统计文件中出现次数最多的前10个单词
使用linux命令或者shell实现:文件words存放英文单词,格式为每行一个英文单词(单词可以重复),统计这个文件中出现次数最多的前10个单词。
cat words.
【Shell】统计文件里面特定字符串出现次数
BALANCE
12-17
1万+
下面三个方法都可以完成这个需求
1.第一种方法:使用grep命令进行统计
grep -o '字符串' file |wc -l
2.第二种方法:使用awk命令进行统计
awk -v RS="@#$j" '{print gsub(/字符串/,"&")}' file
3.第三种方法:另一种使用awk命令进行统计的方法
awk '{s+=gsub(/字符串/,"&")}END{p
awk统计文本里某一列重复出现的次数
maenlai0086的博客
07-16
8185
比如这样的场景:现在有一个文本,里面是这样的内容:
NOTICE: 12-14 15:11:13: parser.* 6685 url=[http://club.pchome.net/thread_1_18_7283270___TRUE.html] get_tm=115 PAGE=15471[Z]:59066 css_tm=1043 css_res=0/4[0] CONT=3230[Z]:...
Linux 统计文件中某个字符串出现的次数(2种方法,推荐第二种)
热门推荐
qq544649790的博客
11-18
3万+
1、单个字符串
grep -o str_1 filename | wc -l
备注:单个字符串可以不加引号
2、多个字符串
grep -o str_1\|str_2\|str_3…… filename | wc -l
备注:必须加引号(单、双都可以)
如果不加引号,结果是不正确的
grep -o 一条数据里面有多个相同,会统计相同的次数
grep一条数据里面有多个相同,会统计一次...
统计文件里面某个字符串出现次数
weixin_33725807的博客
11-12
603
1.第一种方法:使用grep命令进行统计
grep -o '字符串' file |wc -l
[@more@]2.第二种方法:使用awk命令进行统计
awk -v RS="@#$j" '{print gsub(/字符串/,"&")}' file
3.第三种方法:另一种使用awk命令进行统计的方法
awk '{s+=gsub(/字符串/,"&am...
awk学习笔记
weixin_34006965的博客
04-30
2857
不错的学习链接:所以拷贝下来了http://sebug.net/paper/books/awk/ awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息awk处理过程:依次对每一行进行处理,然后输出awk命令形式:awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END...
Linux 统计文件中字符串出现次数
jack
10-28
3269
最近准备跳槽,面试一家公司的时候被问到linux常用命令,比如一个日志文件我要统计某字符串一共出现了几次,由于很久没弄linux有点懵,回来赶紧补知识并记录一下。
网上资料有很多,我主要看了三种grep -o /grep -n /awk
grep -o 一条数据里面有多个相同,会统计相同的次数 grep 一条数据里面有多个相同,会统计一次次数
wc [选项] 文件
-c 统计字节数
-l 统计行数
-w 统计字数
为了测试也刚好正打开了StringWriter这个java类,便创建...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:游动-白
设计师:我叫白小胖
返回首页
刘宇LY
CSDN认证博客专家
CSDN认证企业博客
码龄8年
暂无认证
80
原创
14万+
周排名
137万+
总排名
39万+
访问
等级
4110
积分
33
粉丝
168
获赞
69
评论
203
收藏
私信
关注
热门文章
Mysql 查询一天中,每个小时数据的数量
36461
MySql 删除表中重复的数据(但要保留一条)
26779
MySql 查询时 为NULL 设置默认值
26486
MySql 中 一次update更新多条数据
23652
Mysql 查询一天中每半小时记录的数量
16728
分类专栏
linux
11篇
python
9篇
php
8篇
网络爬虫
4篇
数据库
12篇
java
2篇
Android
29篇
综合
2篇
旧博搬运
2篇
web技术
4篇
最新评论
android记录登录状态
qq_45937515:
博主,这两段代码是加在哪里呀?
android studio 的AVD Manager点击无响应解决办法
qq_43356551:
没用
Mysql 查询一天中,每个小时数据的数量
weixin_45124848:
请教下 时间字段是int类型的10位时间戳 该怎么写呢
Mysql 查询一天中,每个小时数据的数量
weixin_45124848:
估计是那种键盘侠网络喷子 人家免费发教程还帮解答 他搞的好像人家欠他似的。
MySql 查询时 为NULL 设置默认值
A-Liang:
这个是业务问题,不是MySQL的问题
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
自制CSDN博客评论邮件提醒
PHP执行系统命令的4个方法 : system , shell_exec , exec , passthru
利用SSH 反向代理 ,实现跨局域网连接家里的linux 主机 (树莓派)
2018年13篇
2017年12篇
2016年60篇
目录
目录
分类专栏
linux
11篇
python
9篇
php
8篇
网络爬虫
4篇
数据库
12篇
java
2篇
Android
29篇
综合
2篇
旧博搬运
2篇
web技术
4篇
目录
评论 2
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
刘宇LY
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值