【linux】文件与目录命令 - uniq


uniq 命令用于过滤文本文件中相邻的重复行,并支持统计重复次数或仅保留唯一行。它通常与 sort 命令配合使用,因为 uniq 只识别相邻的重复行。

1. 基本用法
  • 语法:

    uniq [选项] [输入文件] [输出文件]
    
  • 功能:

    • 从文本中去除相邻的重复行。
    • 统计重复行的次数或保留唯一行。
  • 此命令是否系统自带:此命令是系统默认自带的,无需额外安装。


2. 常用参数
  • 基本功能:
    • -c:在每行前显示重复的次数。
    • -d:仅显示重复的行。
    • -u:仅显示不重复的行。
  • 输出控制:
    • -i:忽略大小写比较。
    • -f N:忽略每行的前 N 个字段(以空格分隔)。
    • -s N:忽略每行的前 N 个字符。
    • -z:用空字符而不是换行符分隔行(适用于某些特殊文件)。
  • 辅助选项:
    • --help:显示帮助信息。
    • --version:显示命令版本信息。

3. 用法举例
  • 去除重复行
    从文件中删除相邻的重复行:

    uniq file.txt
    
  • 统计重复行的次数
    在每行前添加重复次数:

    uniq -c file.txt
    
  • 仅显示重复的行

    uniq -d file.txt
    
  • 仅显示不重复的行

    uniq -u file.txt
    
  • 忽略大小写
    忽略大小写,删除重复行:

    uniq -i file.txt
    
  • 结合 sort 使用
    对非相邻重复行去重:

    sort file.txt | uniq
    
  • 忽略字段或字符
    忽略每行前 2 个字段进行比较:

    uniq -f 2 file.txt
    

    忽略每行前 3 个字符进行比较:

    uniq -s 3 file.txt
    
  • 输出到文件
    去重后将结果输出到新文件:

    uniq file.txt output.txt
    

4. 注意事项
  • uniq 只处理相邻的重复行,因此文件需要先用 sort 排序以确保重复行相邻。
  • -c-d 参数通常结合 sort 使用,以便统计所有重复行。
  • 忽略字段或字符时,必须正确理解分隔方式,默认以空格为字段分隔符。
  • 如果文件中存在空字符行,使用 -z 参数以适应特殊需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小鹏linux

感谢老板,老板大气

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

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

打赏作者

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

抵扣说明:

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

余额充值