Linux面試指令---uniq指令
阿新 • • 發佈:2018-12-17
uniq 命令
uniq 命令經常和 sort 命令結合在一起使用。uniq 從標準輸入或單個檔名引數接受資料有序列表,預設情況下,從資料列表中刪除任何重複行。uniq 只能用於排過序的資料輸入,因此,uniq 要麼使用管道,要麼將排過序的檔案作為輸入,並總是以這種方式與 sort 命令結合起來使用。uniq 命令是 unique 的縮寫。
(1)命令格式
uniq [選項] [檔名]
(2)常用引數
引數 | 描述 |
---|---|
-c | 在每行前加上表示相應行目出現次數的字首編號 |
-d | 只輸出重複的行 |
-u | 只顯示唯一的行 |
-D | 顯示所有重複的行 |
-f | 比較時跳過前 n 列 |
-i | 在比較的時候不區分大小寫 |
-s | 比較時跳過前 n 個字元 |
-w | 對每行第 n 個字元以後的內容不作對照 |
(3)常用範例
例一:找出/bin 目錄和/usr/bin 目錄下所有相同的命令,可以使用如下命令:
ls /bin /usr/bin | sort | uniq -d
例二:現有檔案內容如下,紅色方框裡的內容表示區號,現在要統計出各個區號的總人數。
實現思路:首先按區號對每行資訊排序,然後使用 uniq 命令對區號進行重複行統計。使用命令如下:
sort -k 4.1n student.txt | uniq -c -f 3 -w 2
sort -k 4.1n,4.1n 表示對第四個欄位的第一個字元按數值排序。
uniq -c -f 3 -w 2 中-f 3 表示跳過前三列的比較,那麼現在只剩下最後一列,-w 2 表示第 2 個字元後的內容不做比較,為什麼是 2 呢,因為跳過前三列時並沒有跳過最後一列前面的空格分隔符,區號前都還有一個空格。