HOME

uniq命令过滤规则介绍

什么是uniq命令?

uniq 是一个常用的 Linux 命令行工具,用于过滤文本文件中的重复行,并按顺序输出。它广泛应用于数据处理、日志分析和系统管理等场景中。

uniq的基本用法

uniq 的基本语法如下:

uniq [选项]... 文件名

1. 默认行为

默认情况下,uniq 命令会读取标准输入流(stdin),或者从指定文件中读取内容。对于每行文本,它只输出第一次出现的那一条,删除重复的行。

示例:

cat file.txt | uniq

2. -c选项

使用 -c 选项时,uniq 命令会在每个不重复的行前加上该行的出现次数。

cat file.txt | uniq -c

输出示例:

   3 apple
   1 banana
   2 orange

3. -d选项

-d 选项用于打印只出现一次的行。这是与默认行为相反的操作。

cat file.txt | uniq -d

输出示例:

apple
banana
orange

4. -u选项

-u 选项类似于 -d,但更为简洁。它会打印所有不重复的行。

cat file.txt | uniq -u

输出与 uniq -d 相同。

5. -i选项

使用 -i 选项时,uniq 命令将忽略大小写进行比较。

echo "Apple\napple" | uniq -ci

输出示例:

   2 apple

6. -f选项

-f n 选项用于设置跳过的行数,即从第 n+1 行开始检查重复。

cat file.txt | uniq -f 1

这将忽略每行的前一个字段进行比较。

7. -s选项

-s n 选项指定跳过开头的字符数来比较。这对于处理具有相同前缀的数据非常有用。

echo "a001\na002" | uniq -cs

输出示例:

   2 a001

结合sort命令使用

uniq 命令经常与 sort 命令结合使用,因为 uniq 只在相邻的行之间检查重复项。如果排序顺序不正确,结果可能会有误。

示例:

cat file.txt | sort | uniq -d

总结

uniq 是一个强大的文本处理工具,适用于许多需要过滤和去重的任务。通过合理使用其选项参数,可以更灵活地应对各种复杂的数据处理需求。