shell除去重複的行 uniq命令

2021-06-16 14:39:34 字數 972 閱讀 2658

from:

進行排序之後,您會發現有些行是重複的。有時候該重複資訊是不需要的,可以將它除去以節省磁碟空間。不必對文字行進行排序,但是您應當記住

uniq

在讀取行時會對它們進行比較並將只除去兩個或更多的連續行。下面的示例說明了它實際上是如何工作的:

清單 1. 用 uniq 除去重複行

警告:請不要使用

uniq

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

有關 uniq 的更多資訊

如果您希望您的工作輕鬆點,比如只顯示唯一的或重複的行,那麼該怎麼辦呢?您可以用

-u(唯一)和

-d(重複)選項來做到這一點,例如:

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

您還可以用

-c選項從

uniq

中獲取一些統計資訊:

清單 3. 使用 -c 選項

就算 uniq

對完整的行進行比較,它仍然會很有用,但是那並非該命令的全部功能。特別方便的是:使用

-f選項,後面跟著要跳過的字段數,它能夠跳過給定數目的字段。當您檢視系統日誌時這非常有用。通常,某些項要被複製許多次,這使得檢視日誌很難。使用簡單的

uniq

無法完成任務,因為每一項都以不同的時間戳記開頭。但是如果您告訴它跳過所有的時間字段,您的日誌一下子就會變得更加便於管理。試一試

uniq -f 3 /var/log/messages

,親眼看看。

還有另乙個選項

-s,它的功能就像

-f一樣,但是跳過給定數目的字元。您可以一起使用

-f和

-s。

uniq

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

-w選項。

用 uniq 除去重複行

重複行通常不會造成問題,但是有時候它們的確會引起問題。此時,不必花上乙個下午的時間來為它們編制過濾器,uniq 命令便是唾手可得的好工具。了解一下它是如何節省您的時間和精力的。進行排序之後,您會發現有些行是重複的。有時候該重複資訊是不需要的,可以將它除去以節省磁碟空間。不必對文字行進行排序,但是您應...

刪除重複行的命令uniq

uniq有3個最為常用的選項,見如下列表 選項命令描述 c可在每個輸出行之前加上該行重複的次數 d僅顯示重複的行 u顯示為重複的行 root xieqichao cat testfile hello world friend hello world hello直接刪除未經排序的檔案,將會發現沒有任何...

linux去除檔案重複行 uniq

uniq命令全稱是 unique 中文釋義是 獨特的,唯一的 該命令的作用是用來去除文字檔案中連續的重複行,中間不能夾雜其他文字行。去除了重複的,保留的都是唯一的,也就是獨特的,唯一的了。我們應當注意的是,它和sort的區別,sort只要有重複行,它就去除,而uniq重複行必須要連續,也可以用它忽略...