最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux 命令uniq經(jīng)典操作示例

 更新時間:2026年02月03日 09:36:56   作者:hweiyu00  
uniq 命令是對連續(xù)重復行去重/統(tǒng)計的工具,常與sort配合使用(先排序讓重復行連續(xù),再去重),核心用于文本去重、統(tǒng)計重復行出現(xiàn)次數(shù),是處理日志、數(shù)據(jù)清單的高頻組合工具,這篇文章主要介紹了Linux 命令uniq經(jīng)典操作示例,需要的朋友可以參考下

概述

uniq 命令是對連續(xù)重復行去重/統(tǒng)計的工具,常與 sort 配合使用(先排序讓重復行連續(xù),再去重),核心用于文本去重、統(tǒng)計重復行出現(xiàn)次數(shù),是處理日志、數(shù)據(jù)清單的高頻組合工具,注意:直接對未排序文件使用 uniq 僅能去除相鄰的重復行,無法處理非連續(xù)的重復行。

資料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a

一、基本語法

uniq [選項] [輸入文件 [輸出文件]]
  • 無輸入文件時,默認讀取標準輸入(最常用:配合管道 sort 文件名 | uniq);
  • 可指定輸出文件,將處理結(jié)果寫入(替代重定向 >);
  • 核心前提:僅處理連續(xù)的重復行,非連續(xù)重復行不會被識別。

二、核心默認行為

連續(xù)重復行去重,僅保留一行,非連續(xù)重復行原樣輸出。
示例:未排序文件 test.txt

apple
apple
banana
apple
banana
banana

直接執(zhí)行 uniq test.txt,輸出:

apple
banana
apple
banana

(僅去除了相鄰的重復行,非連續(xù)的apple/banana仍保留)

三、常用選項(高頻且簡潔,無冗余選項)

uniq 的選項圍繞去重、統(tǒng)計、顯示重復行設計,所有選項均可組合使用,覆蓋99%場景:

選項英文全稱作用實用場景示例效果(基于上述test.txt,先sort再uniq)
-c--count統(tǒng)計每行出現(xiàn)的次數(shù),次數(shù)在前,內(nèi)容在后統(tǒng)計日志中重復IP/關鍵詞的出現(xiàn)頻次2 apple
3 banana
-d--repeated僅顯示連續(xù)重復的行(至少出現(xiàn)2次),且僅保留一行篩選出有重復的內(nèi)容,排除唯一行apple
banana
-D--all-repeated顯示所有的連續(xù)重復行(保留所有重復實例)查看重復行的全部原始內(nèi)容apple
apple
banana
banana
banana
-u--unique僅顯示唯一的行(從未連續(xù)重復的行)篩選出無重復的內(nèi)容若文件無唯一行則無輸出
-f N--skip-fields=N忽略前N列,按剩余內(nèi)容判斷是否重復按指定列去重(如忽略ID列,按內(nèi)容去重)例:1 apple/2 apple,-f1視為重復行
-s N--skip-chars=N忽略前N個字符,按剩余內(nèi)容判斷是否重復按字符位置去重(如忽略前綴,按后綴判斷)例:a123/b123,-s1視為重復行
-w N--check-chars=N僅比較前N個字符,判斷是否重復僅按前N個字符去重/統(tǒng)計例:apple1/apple2,-w5視為重復行

四、經(jīng)典實操示例(分基礎/進階,覆蓋所有核心場景)

基礎場景:先排序再去重(最常用,必學)

基于上述 test.txt,先通過 sort 讓重復行連續(xù),再用 uniq 處理:

# 1. 基礎去重(保留唯一行,去除所有重復行)
sort test.txt | uniq
# 輸出:apple / banana
# 2. 統(tǒng)計重復次數(shù)(核心高頻)
sort test.txt | uniq -c
# 輸出:2 apple / 3 banana
# 3. 僅顯示有重復的行(至少出現(xiàn)2次)
sort test.txt | uniq -d
# 輸出:apple / banana
# 4. 僅顯示唯一行(無任何重復)
# 新建含唯一行的文件test2.txt:apple/apple/banana/pear
sort test2.txt | uniq -u
# 輸出:pear

進階場景1:按指定列/字符去重(-f/-s/-w)

處理結(jié)構(gòu)化文本 data.txt(ID 名稱 類型,按名稱去重,忽略ID列):

1 apple fruit
2 apple fruit
3 banana fruit
4 apple veg
5 orange fruit
# -f1:忽略前1列(ID列),按剩余內(nèi)容判斷重復
sort data.txt | uniq -f1
# 輸出:
# 1 apple fruit
# 4 apple veg
# 3 banana fruit
# 5 orange fruit
# -w6:僅比較前6個字符,判斷重復(1 apple / 2 apple 前6字符一致)
sort data.txt | uniq -w6 -c
# 輸出:
# 3 1 apple fruit
# 1 5 orange fruit

進階場景2:組合選項(統(tǒng)計+顯示所有重復行)

# 顯示所有重復行,并統(tǒng)計每行總次數(shù)(先統(tǒng)計再篩選,需配合awk)
sort test.txt | uniq -c | awk '$1>1'
# 輸出:2 apple / 3 banana(等價sort+uniq -d,且?guī)Т螖?shù))
# 顯示所有重復的原始行,并寫入新文件
sort test.txt | uniq -D > repeat_lines.txt

進階場景3:與其他命令配合(日志統(tǒng)計實戰(zhàn))

統(tǒng)計Nginx訪問日志 access.log訪問次數(shù)最多的前5個IP

# 提取IP列 → 排序 → 統(tǒng)計次數(shù) → 按次數(shù)降序 → 取前5
grep -o "\b[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\b" access.log | sort | uniq -c | sort -nr | head -5

五、與sort -u的核心區(qū)別(易混淆,必分清)

sort -usort | uniq 均能實現(xiàn)全局去重,但功能側(cè)重不同,按需選擇:

命令組合核心功能額外能力適用場景
sort -u 文件名排序+全局去重,一步完成無統(tǒng)計、篩選功能,僅去重僅需去重,無需統(tǒng)計重復次數(shù)
`sort 文件名uniq`排序+全局去重,兩步完成可配合-c/-d/-u實現(xiàn)統(tǒng)計/篩選
`sort 文件名uniq -c`排序+去重+統(tǒng)計次數(shù)核心統(tǒng)計能力,無替代方案

結(jié)論:僅去重用 sort -u(更高效);需統(tǒng)計/篩選重復行,必須用 sort | uniq 選項。

六、關鍵注意事項

  1. 核心前提uniq 僅處理連續(xù)重復行,未排序文件直接使用會漏判非連續(xù)重復行,所有全局去重/統(tǒng)計場景,必須先sort;
  2. 空行處理:空行視為普通行,連續(xù)空行會被去重/統(tǒng)計,可先用grep -v "^$"過濾空行;
  3. 空格/制表符:行首/行尾的空格會影響重復判斷(如apple apple視為不同行),可先用sed 's/^ *//;s/ *$//'去除首尾空格;
  4. 輸出文件:指定輸出文件時,輸入文件和輸出文件不能為同一個文件(否則會清空文件);
  5. 超大文件uniq 逐行處理,內(nèi)存占用極低,可配合sort處理GB級文本文件(如日志、數(shù)據(jù)文件)。

七、高頻組合用法(實戰(zhàn)必用,直接復用)

1. 文本全局去重(高效版)

sort file.txt -u > unique_file.txt

2. 統(tǒng)計重復行次數(shù)并按次數(shù)降序排列

sort file.txt | uniq -c | sort -nr

3. 篩選出僅出現(xiàn)一次的唯一行

sort file.txt | uniq -u

4. 篩選出重復出現(xiàn)的行(至少2次)并統(tǒng)計次數(shù)

sort file.txt | uniq -c | awk '$1 >= 2'

5. 處理結(jié)構(gòu)化文本:按指定列去重并統(tǒng)計

# 按第2列(逗號分隔)去重,統(tǒng)計次數(shù)(先按第2列排序,再忽略前1列去重)
sort -t "," -k2 file.csv | uniq -f1 -c

總結(jié)

uniq連續(xù)重復行處理工具,核心價值是與sort配合實現(xiàn)全局去重/統(tǒng)計/篩選,日常使用的核心口訣

  • 僅去重:sort -u 一步到位;
  • 要統(tǒng)計/篩選:sort | uniq -c/-d/-u 組合使用;
  • 結(jié)構(gòu)化文本:sort -t 分隔符 -k 列號 | uniq -f N 按列處理。

到此這篇關于Linux 命令uniq經(jīng)典操作示例的文章就介紹到這了,更多相關Linux 命令uniq內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • rsync結(jié)合find技巧分享

    rsync結(jié)合find技巧分享

    這條指會找到/home 及其子目錄下,所有的*.sh文件,并將備分到/backupdir這個目錄
    2013-01-01
  • Shell腳本中$符號的幾種用法小結(jié)

    Shell腳本中$符號的幾種用法小結(jié)

    本文主要介紹了Shell 腳本中 '$' 符號的多種用法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • shell中如何批量注釋和取消注釋

    shell中如何批量注釋和取消注釋

    這篇文章主要介紹了shell中如何批量注釋和取消注釋,幫助大家更好的理解和學習shell腳本,感興趣的朋友可以了解下
    2020-08-08
  • git 使用及常用命令

    git 使用及常用命令

    本文是關于git 的使用和一些git使用小技巧,以及git的常用命令,進行的整理,希望能幫助有需要的小伙伴
    2016-07-07
  • linux目錄管理方法介紹

    linux目錄管理方法介紹

    這篇文章介紹了linux目錄管理的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • Shell腳本避免重復執(zhí)行的方法

    Shell腳本避免重復執(zhí)行的方法

    這篇文章主要介紹了Shell腳本避免重復執(zhí)行的方法的,本文給出的代碼只要放在需要執(zhí)行的腳本頭部即可避免重復執(zhí)行,非常方便實用,需要的朋友可以參考下
    2015-01-01
  • Shell腳本中sort工具的實現(xiàn)

    Shell腳本中sort工具的實現(xiàn)

    sort是一個非常實用的文本排序命令,它可以幫助我們對文件或標準輸入的數(shù)據(jù)進行按行排序,支持多種排序方式,本文就來介紹了sort工具的使用,感興趣的可以了解一下
    2025-08-08
  • Linux忘記root密碼進入單用戶模式切換運行級別切換用戶

    Linux忘記root密碼進入單用戶模式切換運行級別切換用戶

    這篇文章主要介紹了Linux忘記root密碼進入單用戶模式切換運行級別切換用戶,需要的朋友可以參考下
    2019-08-08
  • 3000字掃盲shell基礎知識(新手必備)

    3000字掃盲shell基礎知識(新手必備)

    這篇文章主要介紹了3000字掃盲shell基礎知識,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-06-06
  • Shell腳本從文件中逐行讀取內(nèi)容的幾種方法實例

    Shell腳本從文件中逐行讀取內(nèi)容的幾種方法實例

    今天小編就為大家分享一篇關于Shell腳本從文件中逐行讀取內(nèi)容的幾種方法實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論

水富县| 元氏县| 汝州市| 克什克腾旗| 建平县| 德化县| 德钦县| 五指山市| 大姚县| 克拉玛依市| 班玛县| 剑川县| 绵阳市| 阳谷县| 浑源县| 大荔县| 永清县| 合山市| 东山县| 太仆寺旗| 应用必备| 长阳| 郧西县| 锡林浩特市| 石家庄市| 呈贡县| 上蔡县| 枣强县| 洛阳市| 通海县| 通城县| 康乐县| 泰来县| 永州市| 嘉义市| 和龙市| 崇信县| 巴林左旗| 禹城市| 城口县| 阜南县|