sort;uniq;tr命令

本文详细介绍了Linux中常用的三个命令:sort、uniq和tr。sort用于对文件内容进行升序或降序排序,支持数字排序、字段排序和去重;uniq主要用于报告或删除文件中的重复行,可以计数重复行;tr则用于字符替换、压缩和删除。通过实例演示了这些命令的基本用法和组合使用,帮助读者更好地理解和应用这些命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一.sort命令

sort - - 以行为单位,对文件内容进行排序,也可以根据不通的数据类型来排序
比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出

语法格式:
♦ sort [选项] 参数
♦ cat file | sort 选项
常用选项:

-n按照数字进行排序
-r反向排序
-u等同于uniq,表示相同的数据仅显示一行
-t指定字段分隔符,默认使用[Tab]键分隔
-k指定排序字段
-o<输出文件>:将排序后的结果转存至指定文件
-f忽略大小写
-b忽略每行前面的空格

示例1:sort

仅使用sort命令的情况下,如下图,图1看到2.txt文件内有若干无序的数字
使用sort 2.txt不加任何选项后,数字由首字母进行了排序,而不是按照数字大小的排序
在这里插入图片描述

示例2:sort -n

使用sort -n选项对上图1的数字进行排序后,数字按大小顺序进行了排列
在这里插入图片描述

示例3:sort -r

使用sort -r选项对图1的数字进行排序后,数字呈现反向的排序,如图3所示
同时可以组合两个选项sort -nr,此时数字反向切顺序排列
在这里插入图片描述

示例4:sort -u

使用sort -u选项对图4进行排序后,他会将重复的内容进行合并,合并成一行
在这里插入图片描述

示例5:sort -t,sort -k

使用sort -t表示以什么为分隔符,这里我们是以冒号为分隔符,所以是sort -t ‘:’
使用sort -k表示以第几个字段排列,可以看到,以冒号为分隔符,root是第一个字段,x是第二个字段,0是第三个字段,
所以当我们执行命令后可以看到,第三个字段按照数字的顺序进行了排列
在这里插入图片描述

示例6:sort -o

首先用du -a查看当前目录下所有的文件的大小,通过管道符交由sort查看,使用sort -nr按照由大到小的顺序对文件进行排列,紧接着-o将该排序的文件另存到/root/123/12.txt
可以看到第一列从大到小依次排列开
在这里插入图片描述

二.uniq命令

uniq - - 用于报告或者忽略文件中的重复行,常与sort命令结合使用
语法格式:
uniq [选项] 参数
cat file | uniq 选项
常用选项:

-c进行计数,并删除文件中重复出现的行
-d仅显示连续的重复行
-u仅显示出现一次的行

示例1:uniq

uniq uniq.txt
仅使用uniq命令的时候,他只会删除连续重复的行,而非连续重复的行不会被删除

在这里插入图片描述

示例2:uniq -c

uniq -c uniq.txt
他会去显示重复出现的行的出现次数,并且会删除掉重复的行

在这里插入图片描述
扩展:
以上可以统计出非连续重复行下数字出现的次数,如果想要统计所有的数字出现的次数

sort -n  uniq.txt | uniq -c 先使用sort -n对数字进行排序,再使用uniq -c去重并显示重复系次数
cat uniq.txt |sort -n |uniq -c  同上面的效果是一样的

在这里插入图片描述

示例3:uniq -u

uniq -u uniq.txt  仅显示非连续出现的1次的重复行
cat uniq.txt |sort -n |uniq -u  这样无论是否连续都仅显示出现过一次的数字

在这里插入图片描述
在这里插入图片描述

示例4:uniq -d

uniq -d uniq.txt   仅显示连续出现的重复行

在这里插入图片描述

二.tr命令

tr - - 常用来对来自标准输入的字符进行替换、压缩和删除
语法格式:
tr [选项] [参数]
常用选项

-c保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
-d删除所有属于字符集1的字符
-s将重复出现的字符串压缩为一个字符串;用字符集2替换字符集1
-t字符集2替换字符集1,不加选项同结果。

参数:
字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字
符集2":
字符集2:指定要转换成的目标字符集。

示例1: tr

[root@localhost ~]# echo abc
abc
[root@localhost ~]# echo abc | tr 'a-z' 'A-Z'
ABC
将小写的abc转换成大写ABC(如图1)
[root@localhost ~]# echo abc | tr 'a' 'A'
Abc
仅将小写的a替换为大写的A(如图2)

在这里插入图片描述
在这里插入图片描述

示例2: tr -t

[root@localhost ~]# echo abc | tr -t 'b' 'B'
aBc
tr -t的效果同tr不加-t也可以正常执行替换效果

在这里插入图片描述

示例3: tr -c

[root@localhost ~]# echo -e "abc\ncba\nabab"(先用echo输出abc,cba,abab)
abc
cba
abab
[root@localhost ~]# echo -e "abc\ncba\nabab" | tr -c "ab\n" "0"
ab0                                (然后用tr -c将除了ab和换行符其余的都替换成0)
0ba
abab
[root@localhost ~]#

在这里插入图片描述

echo -e "abc\ncba\ndbdb"| tr -c "ab" "0"
ab000ba00b0b0
echo -n
echo -e "XXXXXXX\c"
除了以上两种方式输出的内容结尾不会携带换行符,echo其它输出方法都会在内容结尾默认携带一个换行符\n
换行
echo"" 换行

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值