Linux 管理员 - uniq 命令

以下是 uniq 使用的常用开关。此命令报告或省略重复的行。

开关 操作
-c 按出现次数为行添加前缀
-i 忽略大小写
-u 仅打印唯一的行
-w 检查字符,比较不超过 n 个字符
-s 跳过字符,避免比较前两个 N字符
-f 跳过字段,避免比较前 N 个字段
-D 打印所有重复的行组

我们之前在几个例子中简要使用了 uniq。uniq 命令允许我们根据匹配项过滤文件的行。例如,假设我们在销售部门找到了第二名名为 Matt Davis 的员工。三天后,会计部门需要对下个季度的销售参与奖进行新的估算。我们可以使用以下命令检查员工列表。

[root@centosLocal centos]# cat ./Documents/names.txt | wc -l
30
[root@centosLocal centos]#

我们告诉他们销售部门有 30 人获得年度参与奖。会计部门很可能会注意到差异:他们只需要制作 29 个独特的奖牌。让我们再试一次 −

[root@centosLocal Documents]# cut -d ":" -f 1,2 ./names.txt | sort | uniq | wc -l
29
[root@centosLocal Documents]#

现在我们有足够的信息为会计部门提供销售部门独特参与奖的准确数量(他们不需要付费制作两个独特的奖牌。只需为"Matt Davis"复制第二个)。

注意 −在查找唯一行时,我们总是希望使用 sort,将其输出传输到 uniq。如果非唯一条目不是内联序列,则不会将其视为重复行。

快速生成报告,让我们知道有多少销售人员共用一个办公室 −

[root@centosLocal Documents]# sort -t":" -k3 ./names.txt | cut -d ":" -f3  | 
uniq -c | sort -n 
  1 100 
  1 108 
  1 201 
  1 203 
  1 204 
  1 205 
  1 206 
  1 301 
  1 304 
  1 404 
  1 405 
  1 501 
  1 504 
  1 602 
  1 603 
  1 608 
  1 702 
  1 902 
  2 101 
  2 102 
  2 305 
  2 901 
  2 903 
  3 403 
  
[root@centosLocal Documents]#

basic_centos_linux_commands.html