shell编程之sort、uniq、tr

本文详细介绍了Shell编程中的sort命令,包括忽略大小写、按月份和数字排序、反向排序等功能。接着讲解了uniq命令的用法,如计数、显示重复行。此外,还探讨了tr命令,如替代字符和删除字符。最后,简单提到了cut工具,用于列截取,可以按字节或字符操作,并指定分隔符。

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

sort

依据不同的数据类型进行排序

sort [选项] 参数

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

如果不 -n,默认按ASCLL码排序

cat /etc/passwd | sort

在这里插入图片描述

cat /etc/passwd | sort -n -t: k3  以冒号进行分隔第三列按照数字排序   -nr  反向排序

在这里插入图片描述

cat /etc/passwd | sort -n -t: k3 -o xx.txt  把这些东西输出到xx.txt文件中(覆盖)
cat xx.txt | sort -u   去重

uniq

常用选项:
-c :进行计数
-d :仅显示重复行
-u :仅显示出现一次的行

cat xx.txt | uniq 只会对连续的重复的去重 如果不连续的重复的不会去重

cat xx.txt | sort | uniq 先排序再去重
cat xx.txt | sort | uniq -c  计数
cat xx.txt | sort | uniq -d  把重复的显示出来
cat xx.txt | sort | uniq -u  筛选不是重复的行

打印第一列重复的在这里插入图片描述

tr

常用选项
-c :取代所有不属于第一字符集的字符
-d :删除所有属于第一字符集的字符
-s :把连续重复的字符以单独一个字符表示
-t :先删除第一字符集较第二字符集多出的字符

cat xx.txt | tr 'a' 'A'   把所有a替换成A
cat xx.txt | tr "'" '/'  把单引号

在这里插入图片描述

cat xx.txt | tr 'a-z' 'A-Z'  把小写字母替换成大写字母

在这里插入图片描述

cat xx.txt | tr 'apple' 'APPLE'  并不是单词替换  而是对应的字母替换 a对A p对P  l对L e对E
cat xx.txt | tr -s 'p'  去掉连续字符p
cat xx.txt | tr -s 'pr'  去掉连续字符p和r

cat xx.txt | tr -d 'apple'  删除字母 a、p、l、e

cut 列截取工具

常见选项:
-b :按字节截取
-c :按字符截取,常用于中文
-d :指定以什么为分隔符截取,默认为制表符
-f :通常和-d一起

cat xx.txt | cut -b 2  取每行第二个字节
cat xx.txt | cut -c 2  取每行第二个字 符
cat /etc/passwd | cut -d: -f3  截取以冒号分隔第三列
cat /etc/passwd | cut -d: -f1,3  截取以冒号分隔的第一列和第三列
cat /etc/passwd | cut -d: -f1-3  截取以冒号分隔的第一列到第三列

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值