linux中uniq的用法,uniq命令的用法

uniq用法u n i q用来从一个文本文件中去除或禁止重复行。一般u n i q假定文件已分类,并且结果正确。我们并不强制要求这样做,如果愿意,可以使用任何非排序文本,甚至是无规律行。可以认为u n i q有点像s o r t命令中唯一性选项。对,在某种程度上讲正是如此,但两者有一个重要区别。s o r t的唯一性选项去除所有重复行,而u n i q命令并不这样做。重复行是什么?在u n i q里意即持续不断重复出现的行,中间不夹杂任何其他文本,现举例如下:

CODE:

[sam@chenwy sam]$ cat

myfile.txt

May Day

May Day

May Day

Going DOwn

May Day

May Day.

May Day

u n i q将前三个May

Day看作重复副本,但是因为第4行有不同的文本,故并不认为第五行持续的May Day为其副本。u n i q将保留这一行。命令一般格式:

CODE:

$uniq -u d c -f

input-file out-file

QUOTE:

其选项含义:-u只显示不重复行。-d只显示有重复数据行,每种重复行只显示其中一行-c打印每一重复行出现次数。-f n为数字,前n个域被忽略。一些系统不识别- f选项,这时替代使用- n。

创建文件m y f i l e . t x t,在此文件上运行u n i q命令。

CODE:

[sam@chenwy sam]$

uniq myfile.txt

May Day

Going DOwn

May Day

May Day.

May Day

注意第5行保留下来,其文本为最后一行May Day。如果运行sort -u,将只返回May Day和Going Down。连续重复出现使用- c选项显示行数,即每个重复行数目。本例中,行May

Day重复出现三次

CODE:

[sam@chenwy sam]$

uniq -c myfile.txt

3 May Day

1 Going DOwn

1 May Day

1 May Day.

1 May Day

1.不唯一使用- d显示重复出现的不唯一行:

CODE:

[sam@chenwy sam]$

uniq -d myfile.txt

May Day

CODE:

[sam@chenwy sam]$

uniq -u myfile.txt

Going DOwn

May Day

May Day.

2.对特定域进行测试使用- n只测试一行一部分的唯一性。例如- 5意即测试第5域后各域唯一性。域从1开始记数。如果忽略第1域,只测试第2域唯一性,使用- n2,下述文件包含一组数据,其中第2域代表组代码。

CODE:

[sam@chenwy sam]$ cat

parts.txt

AK123 OPP Y13

DK122 OPP Y24

EK999 OPP M2

CODE:

[sam@chenwy sam]$ cat

parts.txt

AK123 33 46 6u OPP ty yu

DK122 5h 67 y8 OPP ty yu

EK999 56 56 78 IIY ty yu

运行u n i q,将返回所有行。因为这个文件每一行都不同。

CODE:

[sam@chenwy sam]$ cat

parts.txt

1 AK123 33 46 6u OPP ty yu

1 DK122 5h 67 y8 OPP ty yu

1 EK999 56 56 78 IIY ty yu

如果指定测试在第4域后,结果就会不同。u n i q会比较三个相同的O PP,因此将返回一行。

CODE:

[sam@chenwy sam]$

uniq -f4 -c parts.txt

2 AK123 33 46 6u OPP ty yu

1 EK999 56 56 78 IIY ty yu

指定第5域,即从第6域开始比较:

CODE:

[sam@chenwy sam]$

uniq -f5 -c parts.txt

3 AK123 33 46 6u OPP ty yu

如果‘- f’返回错误,替代-n使用:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值