aix和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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值