Linux Shell 014-文本行排序工具

Linux Shell 014-文本行排序工具

本节关键字:Linux、Bash Shell、文本排序
相关指令:sort、uniq

sort

sort介绍

sort工具用于排序;它将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

sort语法

基本语法:sort [选项] 文件名称

sort常用选项
选项说明
-u去除重复行
-r降序排列,默认是升序
-o将排序结果输出到文件中,类似重定向符号>
-n以数字排序,默认是按字符排序
-t分隔符
-k第N列
-b忽略前导空格。
-R随机排序,每次运行的结果均不同
sort实例
# 按照用户的uid进行升序排列
$ sort -n -t: -k3 1.txt

# 按照用户的uid进行降序排列            
$ sort -nr -t: -k3 1.txt

# 按照数字排序
$ sort -n 2.txt

# 按照数字排序并且去重
$ sort -nu 2.txt
$ sort -nr 2.txt
$ sort -nru 2.txt
$ sort -nru 2.txt

# 按照数字排序并将结果重定向到文件
$ sort -n 2.txt -o 3.txt
$ sort -R 2.txt 
$ sort -u 2.txt 

uniq

uniq介绍

uniq用于去除连续的重复行。当重复的行并不相邻时,uniq 命令不起作用。

uniq语法

基本语法:uniq [选项] [输入文件] [输出文件]

uniq常用选项
选项说明
-c统计重复行次数
-d仅显示重复出现的行列
-f<栏位>忽略比较指定的栏位
-s<字符位置>忽略比较指定的字符
-u仅显示出一次的行列
-w<字符位置>指定要比较的字符
-i忽略大小写
–help帮助
–version显示版本信息

补充说明:

  • 不指定[输入文件],则从标准输入读取数据
  • 不指定[输出文件],则将内容显示到标准输出
uniq实例
# 去除文件2.txt中的重复行,并显示结果
$ uniq 2.txt 

# 检查文件2.txt并删除文件中重复出现的行,并在行首显示该行重复出现的次数
$ uniq -c 2.txt

# 当重复的行并不相邻时,uniq 命令是不起作用的,此时可以使用sort命令解决:
$ sort file | uniq

# 找出文件2.txt中重复的行
$ uniq -d 2.txt 

# 找出文件2.txt中重复的行,并统计在文件中出现的次数
$ uniq -dc 2.txt 
  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值