Linux命令日日說(二十九)-- uniq

uniq


語法

uniq [options] file

去重行命令,但是只能是相鄰的行哦。


參數(shù)

  • -c | --count 按出現(xiàn)次數(shù)給行加前綴。

  • -d | --repeated 只打印重復行,每組一行。

  • -D 打印所有重復行。

  • --all-repeated[=METHOD] 類似于-D,但允許用空行分隔組; METHOD={none(default),prepend,separate}

  • -f, --skip-fields=N 避免比較前N個字段。

  • --group[=METHOD] 顯示所有項,用空行分隔組;METHOD={separate(default),prepend,append,both}

  • -i, --ignore-case 比較時忽略大小寫差異。

  • -s, --skip-chars=N 避免比較前N個字符。

  • -u, --unique 僅打印唯一行。

  • -z, --zero-terminated 將所有換行符看做為NUL,不作為新行。

  • -w, --check-chars=N 比較行中不超過N個字符

  • --help 顯示幫助信息

  • --version 顯示版本信息


Example

  • uniq file

    root@248c08605ef5:/# uniq file 
    aaaaaaaa
    cccccccc
    bbbbbbbb
    xxxxxxxx
    iiiiiiii
    xxxxxxxx
    root@248c08605ef5:/# cat file
    aaaaaaaa
    cccccccc
    cccccccc
    bbbbbbbb
    xxxxxxxx
    xxxxxxxx
    iiiiiiii
    iiiiiiii
    iiiiiiii
    xxxxxxxx
    
  • uniq -d file

    打印重復行。只打印一行。

    root@248c08605ef5:/# uniq -d file
    cccccccc
    xxxxxxxx
    iiiiiiii
    
  • uniq -D file

    打印所有的重復行。

    root@248c08605ef5:/# uniq -D file
    cccccccc
    cccccccc
    xxxxxxxx
    xxxxxxxx
    iiiiiiii
    iiiiiiii
    iiiiiiii
    
  • uniq -D --all-repeated=separate file

    使用分隔符分隔每組重復。

    root@248c08605ef5:/# uniq -D --all-repeated=separate  file
    cccccccc
    cccccccc
    
    xxxxxxxx
    xxxxxxxx
    
    iiiiiiii
    iiiiiiii
    iiiiiiii
    
  • uniq -f 1 file

    root@248c08605ef5:/# uniq -f 0 file
    aaaaaaaa
    cccccccc
    bbbbbbbb
    xxxxxxxx
    iiiiiiii
    xxxxxxxx
    root@248c08605ef5:/# uniq -f 1 file
    aaaaaaaa
    
  • uniq --group=[METHOD] file

    顯示所有項,用分隔符分隔。

    root@248c08605ef5:/# uniq --group=both file
    
    aaaaaaaa
    
    cccccccc
    cccccccc
    
    bbbbbbbb
    
    xxxxxxxx
    xxxxxxxx
    
    iiiiiiii
    iiiiiiii
    iiiiiiii
    
    xxxxxxxx
    
    root@248c08605ef5:/# uniq --group=append file
    aaaaaaaa
    
    cccccccc
    cccccccc
    
    bbbbbbbb
    
    xxxxxxxx
    xxxxxxxx
    
    iiiiiiii
    iiiiiiii
    iiiiiiii
    
    xxxxxxxx
    
    root@248c08605ef5:/# uniq --group=prepend file
    
    aaaaaaaa
    
    cccccccc
    cccccccc
    
    bbbbbbbb
    
    xxxxxxxx
    xxxxxxxx
    
    iiiiiiii
    iiiiiiii
    iiiiiiii
    
    xxxxxxxx 
    
  • uniq -u file

    僅輸出唯一行。

    root@248c08605ef5:/# uniq -u file
    aaaaaaaa
    bbbbbbbb
    xxxxxxxx
    
  • sort file | uniq

    結合sort命令看下差別吧。這個應該也是最常用的結合方式了吧。

    root@248c08605ef5:/# sort file | uniq
    aaaaaaaa
    bbbbbbbb
    cccccccc
    iiiiiiii
    xxxxxxxx
    root@248c08605ef5:/# uniq file | sort
    aaaaaaaa
    bbbbbbbb
    cccccccc
    iiiiiiii
    xxxxxxxx
    xxxxxxxx
    
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容