手机版
你好,游客 登录 注册
背景:
阅读新闻

AIX下uniq命令简介及使用

[日期:2012-12-12] 来源:Linux社区  作者:陈林波 [字体: ]
uniq用来从一个文本中去除或禁止重复的行;sort的-u选项也可以去除重复行。 
命令格式:uniq -u[-d[,-c]] -f input_file output_file 
-u:只显示不重复的行 
-d:只显示有重复数据的行,每种重复行只显示其中一行 
-c:打印每一重复行出现次数 
-f:n为数字,前n个域被忽略,不识别-f选项的系统使用-n选项 
我们来看下面的例子: 
有重复数据的文件week.txt 
    1  Monday 
    2  Monday 
    3  Tuesday 
    4  Tuesday 
    5  Wednesday 
    6  Monday 
    7  TuesDay 
    8  Thursday 
    9  Friday 
    10  Saturday 
    11  Sunday 
    12  Friday 
重复的数据有Monday(1,2,6),Tuesday(3,4,7),Friday(9,12)。 
查看week.txt文件中,重复的行: 
uniq -d week.txt 
Monday 
Tuesday 
注意,这里只显示重复数据中,Monday和Tuesday这两行,但是Friday这个重复行并没显示。 
下面查看不重复的行: 
uniq -u week.txt 
Wednesday 
Monday 
TuesDay 
Thursday 
Friday 
Saturday 
Sunday 
Friday 
注意,这里面包含了出现2次的Friday,他们不是重复数据吗? 
答案:他们确实非重复数据。 
我们再看每行重复的次数: 
uniq -c week.txt 
  2 Monday 
  2 Tuesday 
  1 Wednesday 
  1 Monday 
  1 TuesDay 
  1 Thursday 
  1 Friday 
  1 Saturday 
  1 Sunday 
  1 Friday 
从这里,我们看到Monday和Tuesday重复了2次,而Friday就出现了一次,不重复。 
原来,AIX将连续出现的相同数据认为是重复数据, 
而同样的数据(Friday),非连续出现,就不认为重复。 
这是区别于DB2数据库中表的重复数据的,DB2数据库表中, 
只要相同的数据,连续或者非连续出现多次,则认为重复。 
 
sort也具有去除重复的功能: 
sort -u week.txt 
Friday 
Monday 
Saturday 
Sunday 
Thursday 
Tuesday 
TuesDay 
Wednesday 
 
uniq命令还可以根据域进行去重。 
看下面的例子: 
pg parts.txt 
AK47    GOOD 
DS123  GOOD 
ER001  GOOD 
 
显示每行的出现次数: 
uniq -c parts.txt 
  1 AK47      GOOD 
  1 DS123      GOOD 
  1 ER001      GOOD 
 
按照第二个域进行去除重复: 
uniq -f2 parts.txt 
AK47    GOOD linux
相关资讯       AIX  uniq  AIX命令  uniq命令 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款