文件及内容处理 - sort、unip

1. sort:对文件的文本内容排序

sort命令的功能说明

sort 命令用于将文本文件内容加以排序。sort 可针对文本文件的内容,以行为单位来排序。

sort命令的语法格式

sort [OPTION]... [FILE]...
sort [-bcdfimMnr][-o][-t][+-][--help][--verison][文件]

sort命令的常用参数说明:

split 参数很多,表1为 sort 命令的参数及说明:

表1: sort 命令的参数及说明

参数选项 解释说明
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t 指定排序时所用的栏位分隔字符。
+ - 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
--help 显示帮助。
--version 显示版本信息。

sort命令的实践操作

范例1: 在使用 sort 命令以默认的式对文件的行进行排序,使用的命令如下:

--------------------------------------------------------------
==>testfile文件原有排序 <==
--------------------------------------------------------------
[root@web01 ~]# cat testfile
test 30
Hello 95
Linux 85 

--------------------------------------------------------------
==>重排结果<==
--------------------------------------------------------------
[root@web01 ~]# sort testfile
Hello 95
Linux 85
test 30 

2. uniq:去除重复行

uniq命令的功能说明

uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。uniq 可检查文本文件中重复出现的行列。

uniq命令的语法格式

uniq [OPTION]... [INPUT [OUTPUT]]
uniq [-cdu][-f][-s][-w][--help][--version][输入文件][输出文件]

uniq命令的常用参数说明:

uniq 参数不多,表1为 uniq 命令的参数及说明:

表1: uniq 命令的参数及说明

参数选项 解释说明
-c或--count 在每列旁边显示该行重复出现的次数。
-d或--repeated 仅显示重复出现的行列。
-f或--skip-fields= 忽略比较指定的栏位。
-s或--skip-chars= 忽略比较指定的字符。
-u或--unique 仅显示出一次的行列。
-w或--check-chars= 指定要比较的字符。
--help 显示帮助。
--version 显示版本信息。
[输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
[输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

uniq命令的实践操作

范例1: 文件testfile中第 2、3、5、6、7、9行为相同的行,使用 uniq 命令删除重复的行,可使用以下命令:

--------------------------------------------------------------
==>原有内容 <==
--------------------------------------------------------------
[root@web01 ~]#  cat testfile
test 30
test 30
test 30
Hello 95
Hello 95
Hello 95
Hello 95
Linux 85
Linux 85 

--------------------------------------------------------------
==>删除重复行后的内容<==
--------------------------------------------------------------
[root@web01 ~]#  uniq testfile
test 30
Hello 95
Linux 85 

范例2: 检查文件并删除文件中重复出现的行,并在行首显示该行重复出现的次数。使用如下命令:

[root@web01 ~]# uniq -c testfile      <-->删除重复行后的内容
3 test 30             <-->前面的数字的意义为该行共出现了3次
4 Hello 95           <-->前面的数字的意义为该行共出现了4次
2 Linux 85          <-->前面的数字的意义为该行共出现了2次 

范例3: 当重复的行并不相邻时,uniq 命令是不起作用的,即若文件内容为以下时,uniq 命令不起作用:

--------------------------------------------------------------
==>原有内容 <==
--------------------------------------------------------------
[root@web01 ~]# cat testfile1
test 30
Hello 95
Linux 85
test 30
Hello 95
Linux 85
test 30
Hello 95
Linux 85 

--------------------------------------------------------------
==>这时我们就可以使用 sort<==
--------------------------------------------------------------
[root@web01 ~]# sort  testfile1 | uniq
Hello 95
Linux 85
test 30

--------------------------------------------------------------
==>统计各行在文件中出现的次数:<==
--------------------------------------------------------------
[root@web01 ~]# sort testfile1 | uniq -c
   3 Hello 95
   3 Linux 85
   3 test 30

--------------------------------------------------------------
==>在文件中找出重复的行:<==
--------------------------------------------------------------
[root@web01 ~]# sort testfile1 | uniq -d
Hello 95
Linux 85
test 30  

今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津

Shell命令-文件及内容处理之sort、uniq的更多相关文章

  1. Shell命令-文件及内容处理之more、less

    文件及内容处理 - more.less 1. more:分页显示文件内容 more命令的功能说明 more 命令类似 cat,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白 ...

  2. Shell命令-文件及内容处理之cat、tac

    文件及内容处理 - cat.tac 1. cat:显示文件内容 cat命令的功能说明 cat命令用于连接多个文件并且打印到屏幕输出或重定向到指定文件中 cat命令的语法格式 cat [OPTION]. ...

  3. Shell命令-文件及内容处理之head、tail

    文件及内容处理 - head.tail 1. head:显示文件内容头部 head命令的功能说明 head 命令用于显示文件头部内容,默认执行 head 命令会输出文件开头的 10 行. head命令 ...

  4. Shell命令-文件及内容处理之cut、rev

    文件及内容处理 - cut.rev 1. cut:切割文件内容 cut命令的功能说明 cut 命令用于显示每行从开头算起num1 到 num2 的文字. cut命令的语法格式 cut [OPTION] ...

  5. Shell命令-文件及内容处理之diff、vimdiff

    文件及内容处理 - diff.vimdiff 1. diff:比较两个文件区别 diff命令的功能说明 diff命令用比较文件的差异.diff以逐行的方式,比较文本文件的异同处.如果指定要比较目录,则 ...

  6. Shell命令-文件及内容处理之wc,tr

    文件及内容处理 - wc.tr 1. wc:统计文件的行数.单词数或字节数 wc命令的功能说明 wc 命令用于计算字数.利用 wc 指令我们可以计算文件的字节数,字数,或是列数,若不指定文件名称,或是 ...

  7. Shell命令-文件及内容处理之vi、vim

    文件及内容处理 - vi.vim 1.Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器 ...

  8. Shell命令-文件及内容处理之grep(egrep)、join

    文件及内容处理 - grep(egrep).join 1. grep(egrep):文本过滤工具 grep(egrep)命令的功能说明 grep命令是Linux系统中最重要的命令之一,其功能是从文本文 ...

  9. Shell命令-文件及内容处理之split、paste

    文件及内容处理 - split.paste 1. split:分割文件为不同的小片段 split命令的功能说明 split 命令用于将一个文件分割成数个.该指令将大文件分割成较小的文件,在默认情况下将 ...

随机推荐

  1. 学JAVA第九天,for循环算质数及for遍历数组的方法。

    昨天终于收到了评论,老开心了!!! 算质数之前是我最怕的一件事,以前上学不好好学,之前学C#的时候也没好好研究, 直到今天老师逼我要用JAVA算质数,硬着头皮琢磨老半天才琢磨透,现在看来也挺简单的. ...

  2. Dynamics 365支持的语言(中文语言名/英文语言名)列表

    本人微信和易信公众号:微软动态CRM专家罗勇 ,回复277或者20180803可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  3. 解决一个Ubuntu中编译NEON优化的OpenCV的错误

    在Ubuntu 16中编译开启NEON优化的Opencv时,遇到libpng编译是使用汇编代码的错误,完整错误见文章末尾.通过查询发现解决方案是安装跨平台编译器,安装代码如下: sudo apt-ge ...

  4. 操作系统:修改VirtualBox for Mac的虚拟硬盘大小

    我安装的是Mac版的VirtualBox,不能从GUI上修改硬盘大小,但是实在是大小不够用了. 百度后得知,可以用命令行修改. 1.打开终端,输入sudo su,取得管理员权限 $ sudo su P ...

  5. Python第五天 文件访问 for循环访问文件 while循环访问文件 字符串的startswith函数和split函数 linecache模块

    Python第五天   文件访问    for循环访问文件    while循环访问文件   字符串的startswith函数和split函数  linecache模块 目录 Pycharm使用技巧( ...

  6. Kafka相关内容总结(存储和性能)

    Kafka消息的存储 Kafka的设计基于一种非常简单的指导思想:不是要在内存中保存尽可能多的数据,在需要时将这些数据刷新(flush)到文件系统,而是要做完全相反的事情.所有数据都要立即写入文件系统 ...

  7. 设置TIMESTAMP和DATETIME的自动初始化及自动更新

    最近有一个关于MySQL版本升级的事,涉及到一些关于时间类型的细节问题需要查明,因此到官网找到相关文章,翻出来比较方便自己理解,博客这里也贴一下. 参考官网网址: https://dev.mysql. ...

  8. SQLServer之修改存储过程

    修改存储过程注意事项 只能修改先前在 SQL Server 中通过执行 CREATE PROCEDURE 语句创建的过程. Transact-SQL 存储过程修改为 CLR 存储过程,反之亦然. AL ...

  9. SQLServer之创建视图

    视图定义 视图是一个虚拟的表,是一个表中的数据经过某种筛选后的显示方式,视图由一个预定义的查询select语句组成. 使用SSMS数据库管理工具创建视图 1.连接数据库,选择数据库,展开数据库-> ...

  10. c/c++ 网络编程 UDP 改变IP地址

    网络编程 UDP 改变IP地址 在程序里动态改变主机的IP地址 1,改变ipv4的地址 #include <stdio.h> #include <string.h> #incl ...