假设桌面上有一个叫“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行。

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

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

    [转][Linux]Linux下统计当前文件夹下的文件个数.目录个数 统计当前文件夹下文件的个数,包括子文件夹里的 ls -lR|grep "^-"|wc -l 统计文件夹下目录的 ...

  2. [转帖]linux下查找文件及查找包含指定内容的文件常用命令。

    linux下查找文件及查找包含指定内容的文件常用命令. https://blog.csdn.net/yangyu19910407/article/details/18266821 最简单的查找 fin ...

  3. Linux下统计当前文件夹下的文件个数

    Linux下统计当前文件夹下的文件个数 √ ls -l |grep "^-"|wc -l

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

    参考 http://blog.sina.com.cn/s/blog_62449fcf0100nfar.html linux下tar命令解压到指定的目录 :   #tar zxvf /bbs.tar.z ...

  5. linux下tar命令解压到指定的目录

    linux下tar命令解压到指定的目录 : #tar zxvf xx.tar.gz -C /xx//把根目录下的xx.tar.gz解压到/xx/下,前提要保证存在/xx这个目录 这个和cp命令有点不同 ...

  6. linux wc 的用法-linux 下统计行数、单词数、字符个数

    linux wc 的用法-linux 下统计行数.单词数.字符个数   wc : wc -l 统计有多少行 wc -w 统计有多少个单词 wc -c 统计有多少个字符

  7. C#比较两个对象中的指定字段值是否相等

    一.创建CompareFieldAttribute标识要比较的字段 using System; namespace CompareObjField { /// <summary> /// ...

  8. Linux下删除空文件,删除指定大小的文件

    Linux下批量删除空文件(大小等于0的文件)的方法: find . -name "*" -type f -size 0c | xargs -n 1 rm -f 用这个还可以删除指 ...

  9. linux下无root 安装activepython到指定目录

    linux下无root 安装activepython 1.下载ActivePython-2.7.8.10-linux-x86_64.tar.gz 包 2.进入非root用户,如bdc用户,解压 [bd ...

随机推荐

  1. Aspectj是什么

    转载自:http://www.cnblogs.com/sunwke/articles/2568875.html 网上出现了很多讲解 AspectJ 的资料,但大多是从讲解 AspectJ 语法开始,然 ...

  2. React-Native坑1:Invariant Violation:Application 项目名 has not been registered.

    React-Native坑1:Invariant Violation:Application 项目名 has not been registered. 字数347 阅读1421 评论3 喜欢7 前言 ...

  3. 互联网分享知识(一转载 http://www.cnblogs.com/baochuan/p/4636103.html)

         风雪之隅-Laruence的博客 http://www.laruence.com/ PHP开发组成员, Zend兼职顾问, PHP7核心开发者, Yaf, Yar, Yac等项目作者.偏向P ...

  4. [CrunchBang]中文字体美化

    安装必要的字体包 sudo apt-get install ttf-droid ttf-wqy-zenhei xfonts-wqy ttf-wqy-microhei ttf-arphic-ukai t ...

  5. 《HTML5高级程序设计》知识点概要(不涉及详细语法)

    不断更新. 说明:主要记录html5中的一些注意点或知识点,尽量不涉及具体语法信息. 一.CANVAS: 检测: try{ document.createElement("canvas&qu ...

  6. android 学习随笔十(网络:get、post提交数据)

    1.get public class Tools { public static String getTextFromStream(InputStream is){ byte[] b = new by ...

  7. nodejs和mongodb实践

    首先,当然是都安装了nodejs 和mongodb了.这必须是前提条件. 现在我们要用nodejs连接mongodb数据库了.我这里只是一个非常非常简单是实践,初学嘛.更深入的学习之后,我会仔细写笔记 ...

  8. Python标准库之核心模块学习记录

    内建函数和异常 包括__builtin__模块和exceptions模块 操作系统接口模块 包括提供文件和进程处理功能的os模块,提供平台独立的文件名处理(分拆目录名,文件名,后缀等)的os.path ...

  9. :has(selector) 匹配含有选择器所匹配的元素的元素

    描述: 给所有包含 p 元素的 div 元素添加一个 text 类 HTML 代码: <div><p>Hello</p></div> <div&g ...

  10. android 中 listview 设置自动匹配高度

    1.布局文件 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:l ...