AIX下uniq命令简介及使用



AIX下uniq命令简介及使用
 
[plain]  www.2cto.com  
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  
--the end--

相关内容

    暂无相关文章