Welcome 微信登录

首页 / 操作系统 / Linux / AIX下uniq命令简介及使用

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 AIX下sort命令简介及使用Windows 7下打开.CHM文件提示“已取消到该网页导航”相关资讯      AIX  uniq  AIX命令  uniq命令 
  • Linux文本处理工具之sort,uniq实  (04月11日)
  • AIX HACMP系统错误--NODE同步配置  (08/06/2014 14:42:53)
  • 使用Smitty进行AIX上Logical   (05/03/2014 14:32:47)
  • AIX上断开的NFS 挂载点 导致   (02/18/2015 09:27:04)
  • 扩展AIX上的LV大小  (05/25/2014 07:30:14)
  • AIX下做定时任务注意事项  (04/26/2014 10:46:52)
本文评论 查看全部评论 (0)
表情: 姓名: 字数