Linux shell 脚本攻略学习笔记6

排序,唯一与重复

同文本文件打交道时,少不了要用到排序。sort命令能够帮助我们对文本文件和stdin进行排序操作。它通常会配合其他命令来生成所需要的输出。uniq是一个经常与sort一同使用的命令。它的作用是从文本或stdin中提取唯一的行。下面来看看sort和uniq命令的常见用法。

一:

(1) 我们可以按照下面的方式轻松地对一组文件(例如file1.txt和file2.txt) 进行排序:

$ sort file1.txt file2.txt >sorted.txt
或是
$ sort file1.txt file2.txt -o sorted.txt


(2)按照数字顺序进行排序

$ sort -n file.txt

(3)按照逆序进行排序:

$sort -r file.txt


(4) 按照月份进行排序

$ sort -M months.txt
(5)合并两个已经排序过的文件

$sort -m sorted1.txt sorted2.txt
(6)找出已排序文件中不重复的行

$ sort file1.txt file2.txt |uniq


二:深入命令

(1)根据键或者列进行排序

我们可以按列将下面的文本进行排序:


有很多种方法可以对这段文本排序。目前他是按照序号(第一列)来排序的,我们也可以依据第二列和第三列来排序。

-k指定了排序应该按照哪一个键来进行。键指的是列号,而列号就是执行排序时的依据,-r告诉sort命令按照逆序进行排序。例如:

a) 根据第一列,以逆序形式排序


b) 依据第二列进行排序


通常情况下,键就是文本文件中的列。列与列之间用空格分隔。但有时候,我们需要将特定范围内的一组字符作为键。在这种情况下,必须明确地将键指定为某一个范围内的字符,这个范围可以用键起止的字符位置来说明

三:uniq

uniq命令通过消除重复的内容,从给定的输入中(stdin或命令行参数文件)找出唯一的行。它也可以用来找出输入中出现的重复行。

uniq只能作用于排过序的数据输入,因此uniq要么使用管道,要么将排过序的文件作为输入,与sort命令结合使用。

例如:


只显示唯一的行:


要统计各行在文件中出现的次数,使用下面的命令:


找出重复的行:








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值