Linux下统计出现次数最多的指定字段值

假设桌面上有一个叫“data.txt”的文本,内容如下:

{id=‘xxx‘ info=‘xxx‘ kk=‘xxx‘ target=‘111111‘ dd=‘xxx‘}
{id=‘xxx‘ info=‘xxx‘ kk=‘xxx‘ target=‘777‘ dd=‘xxx‘}
{id=‘xxx‘ info=‘xxx‘ kk=‘xxx‘ target=‘yyyy‘ dd=‘xxx‘}
{id=‘xxx‘ info=‘xxx‘ kk=‘xxx‘ target=‘5555‘ dd=‘xxx‘}
{id=‘xxx‘ info=‘xxx‘ kk=‘xxx‘ target=‘777‘ dd=‘xxx‘}
{id=‘xxx‘ info=‘xxx‘ kk=‘xxx‘ target=‘555566‘ dd=‘xxx‘}

要求:找出“data.txt”文件中target字段出现次数最多的值。

Linux下统计字符串

在linux终端通过常用工具进行解决,方法如下:

其中组合用到了一些命令行和工具,有cat、awk、cut、sed、sort、uniq、tail——

cat

cat data.txt,获取并显示“data.txt”文件的每一行内容:

awk

cat data.txt | awk ‘{print $4}‘,显示传入的每一行中第四个字段:

cut

cat data.txt | awk ‘{print $4}‘ | cut -c 8-,从传入字符串的第八位开始,截取字符串到最后:

sed

cat data.txt | awk ‘{print $4}‘ | cut -c 8- | sed "s/‘//g",去掉传入字符串中包含的 ‘ 字符:

sort

cat data.txt | awk ‘{print $4}‘ | cut -c 8- | sed "s/‘//g" | sort,对结果进行排序:

uniq

cat data.txt | awk ‘{print $4}‘ | cut -c 8- | sed "s/‘//g" | sort | uniq -c | sort,去重并统计每种字符串出现的次数:

tail

cat data.txt | awk ‘{print $4}‘ | cut -c 8- | sed "s/‘//g" | sort | uniq -c | sort | tail -n 1,显示结果中的最后一行:

我们至此已知出现次数最多的target字段值为777,出现次数为2。若有多个相同次数的字段值出现,可以通过修改tail -n后面接的数值来查看,改为10即显示结尾10行。

时间: 2024-10-22 19:23:34

Linux下统计出现次数最多的指定字段值的相关文章

[转载] linux下tar命令解压到指定的目录

参考 http://blog.sina.com.cn/s/blog_62449fcf0100nfar.html linux下tar命令解压到指定的目录 : #tar zxvf /bbs.tar.zip -C /zzz/bbs //把根目录下的bbs.tar.zip解压到/zzz/bbs下,前提要保证存在/zzz/bbs这个目录 这个和cp命令有点不同,cp命令如果这个目录不存在,就会自动创建这个目录! 附:用tar命令打包 例:将 当前目录下的zzz文件 打包到当前目录下并命名为zzz.tar.

linux下统计目录下所有子目录的大小

du -sh * --exclude=tar |awk '{v=substr($1,length($1),1)}v=="G"{$0="1G "$0}v=="M"{$0="2M "$0}v=="K"{$0="3K "$0}v=="0"{$0="4Z "$0}!system("[ -d "$NF" ]")' |s

linux下统计代码执行时间

转载自:http://velep.com/archives/973.html 统计函数或某一段代码的运行时间在软件开发中常常遇到.透过运行时间可分析出函数或程序段的运行效率和性能,从而有针对性的对代码进行优化. 在unix环境中,常常用binutils(GNU二进制工具集)中的gprof工具来查看函数运行时间.但本文的重点是自己编写代码实现函数或程序段运行时间的统计.下面进行详细描述. 实现原理 实现原理很简单,在函数或程序段开始运行前,记录开始时间.运行完成后,记录结束时间.把结束时间与开始时

超大文件(1TB)统计访问次数最多的来源IP及访问次数

题目解读 1. 文件格式:访问时间,来源IP,响应结果,响应耗时 2. 文件大小:超大规模,TB数量级 解题思路 首先,数据量过大,通过内存计算肯定是不可行的. 考虑采用分治,将大文件切割成小文件,再对小文件分析,找出访问次数最多的,此时将问题转化为:切割小文件算法 具体思路如下: 将1T的文件按照IP的高8位(代码是按照高8位实现的,ipv4的高位地址不均匀,按照低8位>比较合理)分隔成2^8份. 每一份写入到文件名为"tmp_{高8位地址}"的文件中,文件中的数据为低24位的

Go创建及结构体变量是指定字段值

package main import ( "fmt" ) type Stu struct { Name string Age int } func main() { //方式1 //在创建结构体变量时,就直接指定字段的值 var stu1 = Stu{"小明", 19} // stu1---> 结构体数据空间 stu2 := Stu{"小明~", 20} //类型推导并省略var //在创建结构体变量时,把字段名和字段值写在一起, 这种写

Linux下统计代码行数

使用wc统计代码行数 最近写了一些代码,想统计一下代码的行数,在eclipse中好像没这功能,网上搜了一下才发现原来Linux有一个统计文件行数的命令wc.使用wc可以打印出每个文件和总文件的行数.字数和字节数,如果没有指定文件,则会读取标准输入(一般是终端)做统计.格式如下: Usage: wc [OPTION]... [FILE]... -c, --bytes, --chars print the byte counts -l, --lines print the newline count

Linux 下统计文件夹大小及文件数量

[查看文件夹大小] # /lib 目录大小 du -sh /lib # /lib 子目录大小  du -sh /lib/*   # 查看 /lib 目录下普通文件大小 find /lib -type f | xargs ls -la | awk -F ' ' 'BEGIN{sum=0} {sum+=$5} END{printf "%d bytes\n", sum}' [统计文件数量] # 查看 /lib 目录的总文件数(包含7种文件类型.包含 /lib 目录自身) find /lib 

【Linux】Linux下统计当前文件夹下的文件个数、目录个数

统计当前文件夹下文件的个数,包括子文件夹里的 ls -lR|grep "^-"|wc -l 统计文件夹下目录的个数,包括子文件夹里的 ls -lR|grep "^d"|wc -l 统计当前文件夹下文件的个数 ls -l |grep "^-"|wc -l 统计当前文件夹下目录的个数 ls -l |grep "^d"|wc -l 附: 统计输出信息的行数 wc -l 将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是

Linux下tar命令exclude选项排除指定文件或目录

在linux中可以用tar打包目录以方便传输or备份,我们先来看一个例子 test 文件夹有如下文件 1 2 3 4 5 6 7 8 9 10 [[email protected] ~]# ll test 总用量 8 -rw-r--r--. 1 root root    0 4月  14 22:18 a.jpg -rw-r--r--. 1 root root    0 4月  14 22:25 a.log -rw-r--r--. 1 root root    0 4月  14 22:18 a.t