概述
`uniq` 通常与 `sort` 命令通过管道符 `|` 连接使用,以高效处理已排序数据中的重复行。`-c` 选项可以方便地查看重复行的数量。
主要特点
- 处理连续重复行
- 计算重复行数量 (-c)
- 忽略大小写选项 (-i)
- 忽略特定字段或字符进行比较
主要选项
功能
比较方式
生成的命令:
请尝试组合命令。
描述:
`uniq` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
计算文件中单词的频率
sort words.txt | uniq -c
计算 `words.txt` 文件中每个单词(行)出现的次数并输出。由于 `uniq` 只处理连续重复,因此需要先使用 `sort` 将所有重复项排列在一起。
查找日志文件中出现次数最多的行
cat log.txt | sort | uniq -c | sort -nr
计算日志文件中重复行的数量,然后根据数量(数字)以降序排序结果,显示出现次数最多的行。
忽略大小写计数重复行
echo -e "Apple\napple\nBanana\napple" | sort | uniq -ci
从标准输入中将 'Apple' 和 'apple' 视为相同,并计算它们的重复次数后输出。
忽略特定字段计数重复行
sort -k2 data.txt | uniq -f 1 -c
忽略文件中的第一个字段,并从第二个字段开始比较,计算重复行的数量后输出。(例如,如果 `data.txt` 的内容是 `ID1 apple`, `ID2 apple`,则 'apple' 被计算为 2 次)
提示与注意事项
`uniq` 命令默认只处理“连续”重复的行。因此,要删除或计数整个文件中的重复项,您需要先使用 `sort` 命令对行进行排序。
使用技巧
- 与 sort 结合使用: `uniq` 只处理连续重复,要处理整个文件的重复项,需要先用 `sort` 进行排序。例如:`sort file.txt | uniq -c`
- 查找出现次数最多的项: 可以将 `uniq -c` 的结果通过管道传递给 `sort -nr`,以按降序排序出现次数最多的项。例如:`sort file.txt | uniq -c | sort -nr`
- 性能考虑: 对于非常大的文件,需要考虑 `sort` 和 `uniq` 的内存使用量。如有必要,可以使用 `sort` 的 `-T` 选项指定临时目录。