Linux Shell 014-文本行排序工具

发布时间:2023年12月29日

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 
文章来源:https://blog.csdn.net/qq_45157350/article/details/135169454
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。