Linux面试指令---uniq指令

本文深入解析uniq命令,一种常与sort命令结合使用的Linux工具,用于从排序数据中删除重复行。文章详细介绍了uniq命令的格式、参数及实际应用案例,帮助读者掌握其在数据处理中的高效运用。

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

uniq 命令

       uniq 命令经常和 sort 命令结合在一起使用。uniq 从标准输入或单个文件名参数接受数据有序列表,默认情况下,从数据列表中删除任何重复行。uniq 只能用于排过序的数据输入,因此,uniq 要么使用管道,要么将排过序的文件作为输入,并总是以这种方式与 sort 命令结合起来使用。uniq 命令是 unique 的缩写。

(1)命令格式

         uniq [选项] [文件名]

(2)常用参数

参数描述
-c在每行前加上表示相应行目出现次数的前缀编号
-d只输出重复的行
-u只显示唯一的行
-D显示所有重复的行
-f比较时跳过前 n 列
-i在比较的时候不区分大小写
-s比较时跳过前 n 个字符
-w对每行第 n 个字符以后的内容不作对照

(3)常用范例

         例一:找出/bin 目录和/usr/bin 目录下所有相同的命令,可以使用如下命令:

ls /bin /usr/bin  | sort | uniq -d

        例二:现有文件内容如下,红色方框里的内容表示区号,现在要统计出各个区号的总人数。 

       实现思路:首先按区号对每行信息排序,然后使用 uniq 命令对区号进行重复行统计。使用命令如下:

sort -k 4.1n student.txt | uniq -c -f 3 -w 2

      sort -k 4.1n,4.1n 表示对第四个字段的第一个字符按数值排序。

      uniq -c -f 3 -w 2 中-f 3 表示跳过前三列的比较,那么现在只剩下最后一列,-w 2 表示第 2 个字符后的内容不做比较,为什么是 2 呢,因为跳过前三列时并没有跳过最后一列前面的空格分隔符,区号前都还有一个空格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头脑灵活的胖子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值