`

巧用Linux命令完成统计排序功能

阅读更多
前几天碰到一个问题:现在有一万多条记录,其中包含重复的记录,每条记录占一行,问如何从这些记录中找到数量排名前10的记录?

对于这个问题,可以编程实现。但是在Linux环境下,可以简单的通过一些命令的组合直接完成这项工作。这里先讲我使用的命令,再一一分析。

可以使用以下命令完成这个任务,其中所有的记录以每条一行的形式存储在data文件中。
$ sort data | uniq -c | sort -k 1 -n -r | head 10 

现在来一一分析这些命令组合的含义。

1) sort data
表示对data文件中的内容进行排序。sort命令是对于每一行的内容根据字典序(ASCII码)进行排序,这样可以保证重复的记录时相邻的。

2) sort data | uniq -c
这里,通过管道(|)将左边部分的命令的输出作为右边部分的输入。uniq -c 表示合并相邻的重复记录,并统计重复数。因为uniq -c 只会合并相邻的记录,所以在使用该命令之前需要先排序。

3) sort data | uniq -c | sort -k 1 -n -r
经过uniq -c 处理之后的数据格式形如"2 data",第一个字段是数字,表示重复的记录数;第二个字段为记录的内容。我们将对此内容进行排序。sort -k 1表示对于每行的第一个字段进行排序,这里即指代表重复记录数的那个字段。因为sort命令的默认排序是按照ASCII,这就会导致按从大到小进行排序时,数值2会排在数值11的前面,所以需要使用-n 参数指定sort命令按照数值大小进行排序。-r 表示逆序,即按照从大到小的顺序进行排序。

4) sort data | uniq -c | sort -k 1 -n -r | head 10
head 命令表示选取文本的前x行。通过head 10 就可以得到排序结果中前十行的内容。

总结:通过这个例子,可以深刻的体会到Linux的命令工具集的强大之处,通过几个命令的组合便可以完成这样一件常见但又不简单的任务,体现了Linux简洁而优美的特点。

转自:http://eriol.iteye.com/blog/870641
分享到:
评论

相关推荐

    巧用Linux命令完成统计排序功能.docx

    本篇将详细解析如何巧妙地使用Linux命令完成统计排序的功能,以解决找到数量排名前10的记录的问题。 首先,我们需要理解的是,这个问题的核心在于统计每条记录的出现次数并进行排序。在Linux中,`sort`、`uniq`和`...

    linux数据统计基本命令

    ### Linux 数据统计基本命令 在Linux环境中进行数据统计是一项非常重要的技能,无论是系统管理员还是开发人员,掌握一些基本的数据统计命令对于日常的工作都是极其有用的。本文将详细介绍几个常用的Linux数据统计...

    用Google AJAX Search API对互联网上Linux命令出现次数排名

    标题中的“用Google AJAX Search API对互联网上Linux命令出现次数排名”表明了本文将探讨如何利用Google AJAX Search API来统计并排序Linux命令在互联网上的使用频率。这是一个利用Web服务进行数据挖掘和分析的实例...

    Linux命令详解手册

    Linux命令详解手册是一本适合Linux新手和有一定基础的用户深入学习Linux命令的指南。它详细介绍了大量的Linux命令,涵盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面的操作。掌握这些命令对于理解和使用...

    linux ps 命令详解

    **Linux `ps` 命令详解** 在Linux操作系统中,`ps`(Process Status)命令是用于查看系统当前进程状态的工具。它能够显示进程的实时信息,帮助用户了解系统的运行情况,进行进程管理。`ps`命令历史悠久,功能强大,...

    Linux命令全集一览表

    Linux命令是Linux操作系统中进行系统管理、文件操作和任务执行的基本工具。这些命令通常是通过命令行界面(CLI)输入的,使得用户能够高效地与系统交互。以下是一些常见的Linux命令及其用途: 1. `ls`: 列出当前...

    工程师必用linux命令整理

    ### 工程师必用 Linux 命令详解 Linux 是一种广泛使用的开源操作系统,尤其在服务器领域占有举足轻重的地位。对于从事 IT 行业尤其是软件开发和系统管理的人来说,掌握一定的 Linux 命令是必不可少的技能之一。下面...

    常用Linux命令.pdf

    Linux命令非常繁多,且每个命令都有众多参数,本文只简述了部分常用命令的基本用途和用法。熟练使用这些命令可以大幅提升工作效率,是每个Linux用户都应该掌握的基础技能。由于内容扫描可能存在误差,建议在实际操作...

    redhat Linux命令大全

    ### Red Hat Linux命令大全解析 #### 一、系统管理与控制 - **login**: 用户登录命令,用于切换或建立新的用户会话。 - **logout** 和 **exit**: 用于退出当前用户会话,返回到登录界面或上一个shell。 - **...

    150个常用Linux命令

    本文将基于“150个常用Linux命令”的内容,详细介绍其中的关键知识点,特别是那些对于初学者而言至关重要的命令。 #### 一、帮助与查询命令 **help** 此命令用于查看Shell内置命令的帮助信息。例如: ``` help ...

    linux操作命令手册

    以下是一些常用的Linux命令及其详细解释: 1. **目录操作命令** - **cd**:改变当前工作目录。例如,`cd /etc/a` 将当前目录切换到`/etc/a`。 - **pwd**:显示当前工作目录。运行`pwd`即可查看当前所在目录。 - ...

    Linux命令手册

    Linux命令手册是Linux用户不可或缺的参考资料,尤其对于初学者和经验丰富的系统管理员来说,它能够提供快速查询命令用法的能力。手册涵盖的内容广泛,包括文件目录管理、文档编辑和文件传输等多个方面。在此,我将...

    Linux最常用 150 个命令汇总

    `ls` 是Linux中最常用的命令之一,通过添加不同的选项可以实现更丰富的功能,如 `-l` 显示详细信息、`-a` 显示隐藏文件等。 2. **cd** - **功能说明**:从当前工作目录切换到指定的工作目录。这是日常操作中必不可...

    linxu命令大全 Linux命令非常丰富,下面列出了一些常用的Linux命令,并按照功能进行了分类

    ### Linux命令大全详解 Linux作为一款强大的开源操作系统,在IT领域占据着极其重要的地位。无论是服务器运维、开发环境搭建还是日常的文件管理,掌握一系列基本且实用的Linux命令都是必不可少的。本文将详细介绍...

    Linux运维命令

    - **功能说明**: 查看 Linux Shell 内置命令的帮助文档,例如查看 `cd` 命令的帮助可以使用 `cd --help`。 #### 二、文件和目录操作命令 **3. ls** - **命令**: `ls [选项] [文件或目录]` - **功能说明**: 列出...

    linux中常用的shell命令实验

    Linux 中常用的 shell 命令实验 Linux 操作系统中,shell 命令是最基本也是最重要的命令之一。掌握这些命令可以帮助用户更好地使用 Linux 系统。在这篇文章中,我们将讨论 Linux 中常用的 shell 命令,并通过实验来...

    linux常规操作命令大全

    Linux 常规操作命令大全 Linux 系统中有很多实用的命令,掌握这些命令可以帮助我们更好地使用 Linux 系统。以下是 Linux 常规操作命令大全,涵盖了文件操作、磁盘操作、系统操作等多方面的知识点。 文件操作命令:...

Global site tag (gtag.js) - Google Analytics