插件窝 干货文章 Linux uniq命令怎么使用

Linux uniq命令怎么使用

uniq 重复 sort bash 983    来源:    2025-04-24

uniq 是 Linux 中用于 过滤或统计连续重复行 的实用命令,通常需要与 sort 结合使用(因为 uniq 仅处理相邻的重复行)。以下是详细用法和示例:


基本语法

uniq [选项] [输入文件] [输出文件]

常用选项

选项 作用
-c 统计每行重复出现的次数
-d 仅显示重复的行(每组重复行只显示一次)
-u 仅显示不重复的行
-i 忽略大小写差异
-f N 跳过前 N 个字段(字段以空格或制表符分隔)
-s N 跳过前 N 个字符
-w N 仅比较每行的前 N 个字符

经典使用场景

1. 去重相邻重复行

cat file.txt | uniq      # 直接去重
uniq file.txt            # 效果同上

2. 统计重复次数(需先排序)

sort file.txt | uniq -c  # 先排序再统计

输出示例:

   3 apple
   1 banana
   2 orange

3. 仅显示重复行

sort file.txt | uniq -d

4. 仅显示唯一行(无重复的行)

sort file.txt | uniq -u

5. 忽略大小写去重

sort file.txt | uniq -i

6. 跳过前 N 个字段/字符

sort file.txt | uniq -f 2   # 跳过每行前2个字段
sort file.txt | uniq -s 5   # 跳过每行前5个字符

注意事项

  1. 必须排序uniq 仅处理相邻重复行,通常需先 sortbash sort file.txt | uniq # 正确用法
  2. 输出到文件bash uniq input.txt output.txt

示例文件演示

假设 data.txt 内容:

apple
banana
apple
orange
orange
apple

操作1:统计重复次数

sort data.txt | uniq -c

输出:

3 apple
1 banana
2 orange

操作2:仅保留唯一行

sort data.txt | uniq -u

输出:

banana

组合其他命令

  • cut/awk 结合处理特定列: bash cut -d',' -f1 data.csv | sort | uniq -c

通过灵活组合选项,uniq 可以高效完成日志分析、数据统计等任务。