Linux管理員 - uniq命令



以下是uniq常用的開關。此命令報告或忽略重複的行。

開關 動作
-c 以出現次數作為行字首
-i 忽略大小寫
-u 僅列印唯一行
-w 檢查字元,比較不超過n個字元
-s 跳過字元,避免比較前兩個N個字元
-f 跳過欄位,避免比較前N個欄位
-D 列印所有重複行組

我們之前在一些例子中簡要地使用了uniq。uniq命令允許我們根據匹配項過濾檔案的行。例如,假設我們在銷售部門又獲得了一位名叫Matt Davis的員工。三天後,會計部門需要銷售參與獎下一季度的新的估算。我們可以使用以下命令檢查員工列表。

[root@centosLocal centos]# cat ./Documents/names.txt | wc -l 
30 
[root@centosLocal centos]#

我們告訴他們銷售部門有30人參加年度參與獎。會計部門很可能會注意到差異:他們只需要製作29個獨特的獎牌。讓我們再試一次 -

[root@centosLocal Documents]# cut -d ":" -f 1,2 ./names.txt | sort | uniq | wc -l 
29
[root@centosLocal Documents]#

現在我們有足夠的資訊來提供給會計部門一個準確的銷售部門獨特參與獎的數量(他們不需要支付製作兩個唯一獎牌的費用。只需為“Matt Davis”複製第二個)。

注意 - 在查詢唯一行時,我們總是希望使用sort,將其輸出傳遞給uniq。如果非唯一條目不在行內順序,則它們將不會被視為重複行。

要快速生成一份報告,讓我們知道有多少銷售人員共用一個辦公室 -

[root@centosLocal Documents]# sort -t":" -k3 ./names.txt | cut -d ":" -f3  | 
uniq -c | sort -n 
  1 100 
  1 108 
  1 201 
  1 203 
  1 204 
  1 205 
  1 206 
  1 301 
  1 304 
  1 404 
  1 405 
  1 501 
  1 504 
  1 602 
  1 603 
  1 608 
  1 702 
  1 902 
  2 101 
  2 102 
  2 305 
  2 901 
  2 903 
  3 403 
  
[root@centosLocal Documents]#
basic_centos_linux_commands.htm
廣告

© . All rights reserved.