linux uniq 命令整理

作者: smoke_zl | 来源:发表于2018-09-13 23:59 被阅读2次

uniq 对排序好的内容进行去重

语法:

uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]

选项:

-c或--count 在每列旁边显示该行重复出现的次数
-d或--repeated 仅显示重复出现的行
-f<栏位>或--skip-fields=<栏位> 比较时跳过前n列,从n+1列开始比较
-s<字符位置>或--skip-chars=<字符位置>比较时跳过前n个字符,从n+1个字符开始比较
-u或--unique 仅显示出现一次的行
-w<字符位置>或--check-chars=<字符位置>对每行第n个字符以后的内容不作对照

这里也不多说,就说一句,uniq 是对排序好的内容去重,一般和 sort 同时使用,好,直接上例子,先展示下原始数据
sort -k 2,2 sort.log

e   bsd     1000    600 4M
c   Debian  600     200 8K
b   linux   1000    200 5K
a   mac     2000    500 2K
f   SUSE    4000    300 6M
c   win7    2000    100 7G
d   winxp   4000    300 3G
d   winxp   500     300 3G
g   winxp   500     300 3G
g   winxp   500     300 3G

为了方便观看,我将原始数据和去重后的数据都展示出来,左边为原始数据,右边为去重后的数据
1、默认去重
sort -k 2,2 sort.log|uniq

e   bsd     1000    600 4M          e   bsd     1000    600 4M
c   Debian  600     200 8K          c   Debian  600     200 8K
b   linux   1000    200 5K          b   linux   1000    200 5K
a   mac     2000    500 2K          a   mac     2000    500 2K
f   SUSE    4000    300 6M          f   SUSE    4000    300 6M
c   win7    2000    100 7G          c   win7    2000    100 7G
d   winxp   4000    300 3G          d   winxp   4000    300 3G
d   winxp   500     300 3G          d   winxp   500     300 3G
g   winxp   500     300 3G          g   winxp   500     300 3G
g   winxp   500     300 3G

2、比较时跳过前n列,从n+1列开始比较
sort -k 2,2 sort.log|uniq -f 3

e   bsd     1000    600 4M          e   bsd     1000    600 4M
c   Debian  600     200 8K          c   Debian  600     200 8K
b   linux   1000    200 5K          b   linux   1000    200 5K
a   mac     2000    500 2K          a   mac     2000    500 2K
f   SUSE    4000    300 6M          f   SUSE    4000    300 6M
c   win7    2000    100 7G          c   win7    2000    100 7G
d   winxp   4000    300 3G          d   winxp   4000    300 3G
d   winxp   500     300 3G
g   winxp   500     300 3G
g   winxp   500     300 3G

3、对每行第n个字符以后的内容不作对照,忽略n以后的字符
sort -k 2,2 sort.log|uniq -w 1

e   bsd     1000    600 4M          e   bsd     1000    600 4M
c   Debian  600     200 8K          c   Debian  600     200 8K
b   linux   1000    200 5K          b   linux   1000    200 5K
a   mac     2000    500 2K          a   mac     2000    500 2K
f   SUSE    4000    300 6M          f   SUSE    4000    300 6M
c   win7    2000    100 7G          c   win7    2000    100 7G
d   winxp   4000    300 3G          d   winxp   4000    300 3G
d   winxp   500     300 3G          g   winxp   500     300 3G
g   winxp   500     300 3G
g   winxp   500     300 3G

4、比较时跳过前n个字符,从n+1个字符开始比较
sort -k 2,2 sort.log|uniq -s 1

e   bsd     1000    600 4M          e   bsd     1000    600 4M
c   Debian  600     200 8K          c   Debian  600     200 8K
b   linux   1000    200 5K          b   linux   1000    200 5K
a   mac     2000    500 2K          a   mac     2000    500 2K
f   SUSE    4000    300 6M          f   SUSE    4000    300 6M
c   win7    2000    100 7G          c   win7    2000    100 7G
d   winxp   4000    300 3G          d   winxp   4000    300 3G
d   winxp   500     300 3G          d   winxp   500     300 3G
g   winxp   500     300 3G
g   winxp   500     300 3G

5、在每列旁边显示该行重复出现的次数,并仅显示出现一次的行
sort -k 2,2 sort.log|uniq -c -u

e   bsd     1000    600 4M          1 e bsd     1000    600 4M
c   Debian  600     200 8K          1 c Debian  600     200 8K
b   linux   1000    200 5K          1 b linux   1000    200 5K
a   mac     2000    500 2K          1 a mac     2000    500 2K
f   SUSE    4000    300 6M          1 f SUSE    4000    300 6M
c   win7    2000    100 7G          1 c win7    2000    100 7G
d   winxp   4000    300 3G          1 d winxp   4000    300 3G
d   winxp   500     300 3G          1 d winxp   500     300 3G
g   winxp   500     300 3G
g   winxp   500     300 3G

6、在每列旁边显示该行重复出现的次数,并仅显示重复出现的行
sort -k 2,2 sort.log|uniq -d -c

e   bsd     1000    600 4M          2 g winxp   500 300 3G
c   Debian  600     200 8K
b   linux   1000    200 5K
a   mac     2000    500 2K
f   SUSE    4000    300 6M
c   win7    2000    100 7G
d   winxp   4000    300 3G
d   winxp   500     300 3G
g   winxp   500     300 3G
g   winxp   500     300 3G

uniq整理完了,欢迎大牛指教

相关文章

  • Linux uniq 命令

    Linux uniq 命令 uniq 命令 uniq 命令可以去除排序过的文件中的重复行,因此 uniq 经常和 ...

  • linux uniq 命令整理

    uniq 对排序好的内容进行去重 语法: 选项: 这里也不多说,就说一句,uniq 是对排序好的内容去重,一般和 ...

  • Linux命令学习之:uniq命令

    Linux命令学习之:uniq命令 uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也...

  • linux命令之uniq命令

    linux 命令 之 uniq命令是用于忽略或报告文件中的重复行,一般与sort命令结合使用 uniq命令可以加参...

  • awk命令

    下文来自:美团 吴孟达更多AWK命令请参考:Linux awk 命令扩展:linux sort,uniq,cut,...

  • linux命令 - uniq

    功能 report or filter out repeated lines in a file 文本 用法 un...

  • PHP高手进阶指南

    Linux常用命令 grep、awk、sed、sort、uniq、ps、df Linux系统性能分析 vmstat...

  • linux uniq 命令实用手册

    Linux uniq 命令用于处理文本内容中的重复行。 这里我们只介绍其常用参数,其完整用法可参见man uniq...

  • 百度 PHP 面试

    Linux文本操作1.统计命令——wc2.切分命令——cut3.排序命令——sort4.去重命令——uniq5.查...

  • uniq

    uniq 命令 命令简介 uniq命令可以用于过滤或者输出重复行

网友评论

    本文标题:linux uniq 命令整理

    本文链接:https://www.haomeiwen.com/subject/ylhngftx.html