1. 程式人生 > >Linux面試指令---uniq指令

Linux面試指令---uniq指令

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 呢,因為跳過前三列時並沒有跳過最後一列前面的空格分隔符,區號前都還有一個空格。