利用Linux命令进行文本按行去重并按重复次数排序

linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能。本文这里举例说明如何利用Linux命令行进行文本按行去重并按重复次数排序。主要用到的命令有sort,uniq。其中,sort主要功能是排序,uniq主要功能是实现相邻文本行的去重。

用于演示的测试文件内容如下:

Hello World.

Apple and Nokia.

Hello World.

I wanna buy an Apple device.

The Iphone of Apple company.

Hello World.

The Iphone of Apple company.

My name is Friendfish.

Hello World.

Apple and Nokia.

1、文本去重

(1)排序

由于uniq命令只能对相邻行进行去重复操作,所以在进行去重前,先要对文本行进行排序,使重复行集中到一起。

排序前:

排序后:

(2)去掉相邻的重复行

如图所示:

2、文本行去重并按重复次数排序

(1)首先,对文本行进行去重并统计重复次数(uniq命令加-c选项可以实现对重复次数进行统计)

如图所示:

(2)按重复次数排序

sort -n可以识别每行开头的数字,并按其大小对文本行进行排序。默认是按升序排列,如果想要按降序要加-r选项(sort -rn)

-------------------------------------------------------手动分割---------------------------------------------------------

2018/09/04

做数据统计的时候遇见一个问题,对一个包含地区名的地区文件做处理的时候(cat diqu.log | sort | uniq -c),发现相邻的地区名

并没有去重,反复试了好几次也没有解决

注意:uniq 命令读取文本文件或者标准输入,并比较相邻的行。正常情况下,相邻的重复行将被删去

最后查了一下,怀疑应该是编码的问题,最后找到了解决方案:

修改系统配置

vi /etc/sysconfig/i18n

#把原配置

LANG="en_US.UTF-8"

#修改为

LANG="zh_CN.GB18030"

做以上修改就能解决问题

-------------------------------------------------------手动分割---------------------------------------------------------

2019/09/18

对于一些文件,我们在去重排序后会有空行存在的问题,比如:

可以看到去重之后的文件是存在空行,可以执行如下命令去除空行:

grep -v '^$' file

效果如下所示:

Linux 命令 - sort: 行排序文本文件

命令格式 sort [OPTION]... [FILE]... 命令参数 -b, --ignore-leading-blanks 忽略开头的空白字符. -d, --dictionary-order 只 ...

Linux命令总结_sort排序命令

1.sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件]       补充说明:sort可针对文本文件的内容,以行为单位 ...

Linux 命令 - wc: 统计文件的行数、字数和字节数

命令格式 wc [OPTION]... [FILE]... 命令格式 -c, --bytes 打印字节数. -m, --chars 打印字符数. -l, --lines 打印行数. -L, --max ...

利用Linux命令行进行文本按行去重并按重复次数排序

最近杂事太多,正事进展缓慢.Fighting! linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linux命令行进行文本按行去重并按重 ...

Linux sort 排序 去重 统计

先写一个命令: cut -d' ' -f1 ~/.bash_history|sort -d | uniq -c|sort -nr|head 这个命令可以统计你历史上输入的命令的次数的前十条 整个命令基 ...

转载:Linux命令经典面试题:统计文件中出现次数最多的前10个单词

1.使用linux命令或者shell实现:文件words存放英文单词,格式为每行一个英文单词(单词可以重复),统计这个文件中出现次数最多的前10个单词 主要考察对sort.uniq命令的使用,相关解释 ...

《sort帮你排序》-linux命令五分钟系列之二十六

本原创文章属于博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...

Linux 文本去重 之 命令sort 与 uniq

sort [-fbMnrtuk] [file or stdin] 选项与参数: -f :忽略大小写的差异,例如 A 与 a 视为编码相同: -b :忽略最前面的空格符部分: -M :以月份的名字来排序 ...

Linux命令输出头(标题)、输出结果排序技巧

原文:http://blog.csdn.net/hongweigg/article/details/65446007 ----------------------------------------- ...

随机推荐

使用Aspose.Cells读取Excel

最新更新请访问: http://denghejun.github.io Aspose.Cells读取Excel非常方便,以下是一个简单的实现读取和导出Excel的操作类: 以下是Aspose.Ce ...

《python核心编程》笔记——文件的创建、读取和显示

创建文件(makeTextFile.py)脚本提醒用户输入一个尚不存在的文件名,然后由用户输入文件每一行,最后将所有文本写入文本文件 #!/usr/bin/env python 'makeTextFi ...

StructureMap使用方法(转)

终于到了题目中的MVC使用StructureMap依赖注入的配置与实现了.在ASP.Net三层架构应用中StructureMap的是最老的IOC/DI工具,也就是依赖注入,很多线上的项目都使用了Str ...

css笔记04:属性选择器

1.属性选择器: 带有 title 属性的所有元素设置样式: /p>

oracle 格式化数字 to_char

转:http://blog.csdn.net/chinarenzhou/article/details/5748965 Postgres 格式化函数提供一套有效的工具用于把各种数据类型(日期/时间,i ...

sharepoint 2010 使用自定义列表模版创建列表(1)

我们在使用sharepoint的过程中,发现一个比较好用的功能,就是“将此列表另存为模版”(save list as template),这个功能的作用是,创建一个和当前列表或者文档库一模一样的配置, ...

POJ训练计划3080_Blue Jeans(串处理/暴力)

Blue Jeans Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11542   Accepted: 4962 Descr ...

python应用-爬取猫眼电影top100

import requests import re import json import time from requests.exceptions import RequestException d ...

最长增长子序列(LIS)

给定一个无序的整数数组,找到其中最长上升子序列的长度. 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4. 说 ...

linux 删除开头是减号的文件名

若有一个文件的文件名为 : -testfile 删除方法为 : 输入“rm — -testfile”或”rm ./-testfile”命令便可顺利删除名为“-testfile”的文件. 如果是其他特殊 ...

linux统计排序命令,Linux命令去重统计排序相关推荐

  1. hive通过grouping sets多维度组合去重统计避免使用distinct

    在hive中,如果遇到多维度组合统计,并且要进行去重统计,例如统计不同维度组合的访问用户数,比如统计运营商.手机品牌.网络类型的用户数,怎样避免不用ditinct(因为distinct效率低),并且g ...

  2. EXCEL去重统计(条件去重复计数)

    1.单列去重统计公式为:=sumproduct(1/countif(选定列范围,选定列范围)),其原理是在某一列的范围中,每个数据出现的次数有多少,然后用1去除.简单点说,假设A列数组中出了3次A,每 ...

  3. linux文本去重分割,Linux命令去重统计排序

    利用Linux命令进行文本按行去重并按重复次数排序 linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linux命令行进行文本按行去重并 ...

  4. java 数组去重排序_Java实现的数组去重与排序操作详解

    本文实例讲述了Java实现的数组去重与排序操作.分享给大家供大家参考,具体如下: 这里演示Java实现数组去重.排序操作 文中的示例源码编写基于Jdk1.6+.junit4.8.2 java.util ...

  5. linux 7进入目录的命令,centos7目录统计之du命令

    CentOS下du查看计算目录大小的命令 用法实例: [root@localhost local]# du -hs smgpdfd 3.3G    smgpdfd [root@localhost lo ...

  6. linux命令统计文件行数据库,wc命令--Linux统计文件行数

    语法:wc [选项] 文件- 说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所有指定文件的总统计数.字是由空格字符区分开的最大字符串. 该命令各选 ...

  7. linux sort 多列去重排序,【Linux】sort排序、uniq去重、wc统计

    文章目录 一.sort 排序 1.语法 2.参数说明 3.实例 二.uniq 去重 1.uniq使用 2.sort和uniq去重结果对比 三.wc 统计 一.sort 排序 sort命令用于 对文本文 ...

  8. linux显示当前电源功耗命令,linux命令大全之wc命令详解(统计文件字节数)

    Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数. ...

  9. Linux下,文件查找命令which,whereis,find,别名命令alias,统计命令wc

    Linux下,文件查找命令which,whereis,find,别名命令alias,统计命令wc O.简要 1.Linux系统中查找文件比较常用的命令就是which,whereis,find,最常用的 ...

最新文章

  1. 软件工程个人作业01
  2. Debug无忧!清华校友打造Python调试神器:反向追踪变量、数据流等 | 开源
  3. 【转】开机出现 error:file “/boot/grub/i386-pc/normal.mod“ not found 错误提示
  4. Android 时间维护服务 TimeService(针对于特殊定制设备)
  5. 下岗职工能不能提前退休?怎样才能提前退休?
  6. 2021 前端面试经常被问到 Javascript+HTML5+CSS+ 框架问题(89 篇资料总结)
  7. unity 后台计时器实现
  8. Android 多线程之阻塞队列
  9. 微信浪漫告白小程序java_厉害了,微信小程序可以这样表白,还怕他(她)拒绝你?...
  10. 关于web中的字体, .woff, .eot, .svg
  11. 李宇春-唐人街无损品质mp3-flac音乐歌曲网盘免费下载
  12. Android Fingerprint属性
  13. 服务器响应为 5.7.0 dt spm,常见邮箱客户端发送失败的错误代码解析
  14. SOM网络--机器学习(郑捷 著)
  15. Mac 上删除键(delete)的妙用
  16. 2个 windows 下的网络测试工具
  17. git 创建关联远程分支报错Did you intend to checkout ‘origin/branchName‘ which can not be resolved as commit?
  18. Ljava.lang.Object; cannot be cast to……异常
  19. Linux笔记 No.22---(Linux - PAM)
  20. SiTime硅晶振与石英晶振电磁敏感性比较

热门文章

  1. JS 怎么控制 checkbox 选中的问题
  2. xshell6 强制更新的问题(转载、亲测有效)
  3. Python编程练习题目汇总
  4. 用mysql编资产负债表_资产负债表如何编制!
  5. UVC webcam添加H264 NV12等格式支持
  6. 又拍云张聪:OpenResty 动态流控的几种姿势
  7. python猜数字游戏、在程序中预设一个_python 语法基础练习题
  8. 投资理财之基金三:债券基金
  9. PPTPDF文件转换成图片上传OSS
  10. Win8初体验 内存/SSD硬盘性能挑Win7(一)