linux uniq使用命令

來源:互聯網
上載者:User

轉自:http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/l-tiptex6/

重複行通常不會造成問題,但是有時候它們的確會引起問題。此時,不必花上一個下午的時間來為它們編製過濾器,uniq 命令便是唾手可得的好工具。瞭解一下它是如何節省您的時間和精力的。

進行排序之後,您會發現有些行是重複的。有時候該重複資訊是不需要的,可以將它除去以節省磁碟空間。不必對文本行進行排序,但是您應當記住
uniq
在讀取行時會對它們進行比較並將只除去兩個或更多的連續行。下面的樣本說明了它實際上是如何工作的:

清單 1. 用 uniq 除去重複行

<br /> $ cat happybirthday.txt<br />Happy Birthday to You!<br />Happy Birthday to You!<br />Happy Birthday Dear Tux!<br />Happy Birthday to You!<br />$ sort happybirthday.txt<br />Happy Birthday Dear Tux!<br />Happy Birthday to You!<br />Happy Birthday to You!<br />Happy Birthday to You!<br />$ sort happybirthday.txt | uniq<br />Happy Birthday Dear Tux!<br />Happy Birthday to You!<br />

警告:請不要使用
uniq
或任何其它工具從包含財務或其它重要資料的檔案中除去重複行。在這種情況下,重複行幾乎總是表示同一金額的另一個交易,將它除去會給會計部造成許多困難。千萬別這麼幹!

有關 uniq 的更多資訊

本系列文章介紹了文本公用程式,它對在手冊頁和資訊頁找到的資訊作了補充。如果您開啟新的終端視窗並輸入
man uniq

info uniq
,或者開啟新的瀏覽器視窗並查看
位於 gnu.org 的 uniq 手冊頁
,那麼就可以瞭解更多的相關資訊。

如果您希望您的工作輕鬆點,比如只顯示唯一的或重複的行,那麼該怎麼辦呢?您可以用
-u
(唯一)和
-d
(重複)選項來做到這一點,例如:

清單 2. 使用 -u 和 -d 選項

$ sort happybirthday.txt | uniq -u<br />Happy Birthday Dear Tux!<br />$ sort happybirthday.txt | uniq -d<br />Happy Birthday to You!

 

您還可以用
-c
選項從
uniq
中擷取一些統計資訊:

清單 3. 使用 -c 選項

$ sort happybirthday.txt | uniq -uc<br />1 Happy Birthday Dear Tux!<br />$ sort happybirthday.txt | uniq -dc<br />3 Happy Birthday to You!<br />

 

就算
uniq
對完整的行進行比較,它仍然會很有用,但是那並非該命令的全部功能。特別方便的是:使用
-f
選項,後面跟著要跳過的欄位數,它能夠跳過給定數目的欄位。當您查看系統日誌時這非常有用。通常,某些項要被複製許多次,這使得查看日誌很難。使用簡單的
uniq
無法完成任務,因為每一項都以不同的時間戳記開頭。但是如果您告訴它跳過所有的時間欄位,您的日誌一下子就會變得更加便於管理。試一試
uniq -f 3 /var/log/messages
,親眼看看。

還有另一個選項
-s
,它的功能就像
-f
一樣,但是跳過給定數目的字元。您可以一起使用
-f

-s

uniq
先跳過欄位,再跳過字元。如果您只想使用一些預先設定的字元進行比較,那麼該怎麼辦呢?試試看
-w
選項。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.