天天看點

Linux指令學習:uniq

uniq 指令

文字 uniq 是LINUX指令 用途 報告或删除檔案中重複的行。 文法 uniq [ -c | -d | -u ] [ -f Fields ] [ -s Characters ] [ -Fields ] [ +Characters ] [ InFile [ OutFile ] ] 描述 uniq 指令删除檔案中的重複行。 uniq 指令讀取由 InFile 參數指定的标準輸入或檔案。該指令首先比較相鄰的行,然後除去第二行和該行的後續副本。重複的行一定相鄰。(在發出 uniq 指令之前,請使用 sort 指令使所有重複行相鄰。)最後,uniq 指令将最終單獨的行寫入标準輸出或由 OutFile 參數指定的檔案。InFile 和 OutFile 參數必須指定不同的檔案。如果輸入檔案用“- ”表示,則從标準輸入讀取;輸入檔案必須是文本檔案。文本檔案是包含組織在一行或多行中的字元的檔案。這些行的長度不能超出 2048 個位元組(包含所有換行字元),并且其中不能包含空字元。 預設情況下,uniq 指令比較所有行。如果指定了-f Fields 或 -Fields 标志, uniq 指令忽略由 Fields 變量指定的字段數目。 field 是一個字元串,用一個或多個 <空格 > 字元将它與其它字元串分隔開。 如果指定了 -s Characters 或 -Characters 标志, uniq 指令忽略由 Characters 變量指定的字段數目。為 Fields 和 Characters 變量指定的值必須是正的十進制整數。 目前本地語言環境決定了 -f 标志使用的 <空白> 字元以及 -s 标志如何将位元組解釋成字元。 如果執行成功,uniq 指令退出,傳回值 0。否則,指令退出傳回值大于 0。 标志 -c 在輸出行前面加上每行在輸入檔案中出現的次數。 -d 僅顯示重複行。 -u 僅顯示不重複的行。 -f Fields 忽略由 Fields 變量指定的字段數目。如果 Fields 變量的值超過輸入行中的字段數目, uniq 指令用空字元串進行比較。這個标志和 -Fields 标志是等價的。 -s Characters 忽略由 Characters 變量指定的字元的數目。如果 Characters 變量的值超過輸入行中的字元的數目, uniq 用空字元串進行比較。如果同時指定 -f 和 -s 标志, uniq 指令忽略由 -s Characters 标志指定的字元的數目,而從由 -f Fields 标志指定的字段後開始。 這個标志和 +Characters 标志是等價的。 -Fields 忽略由 Fields 變量指定的字段數目。這個标志和 -f Fields 标志是等價的。 +Characters 忽略由 Characters 變量指定的字元的數目。如果同時指定 - Fields 和 +Characters 标志, uniq 指令忽略由 +Characters 标志指定的字元數目,并從由 -Fields 标志指定的字段後開始。 這個标志和 -s Characters 标志是等價的。 - c 顯示輸出中,在每行行首加上本行在檔案中出現的次數。它可取代- u和- d選項。 - d 隻顯示重複行 。 - u 隻顯示檔案中不重複的各行 。 - n 前n個字段與每個字段前的空白一起被忽略。一個字段是一個非空格、非制表符的字元串,彼此由制表符和空格隔開(字段從0開始編号)。 + n 前n個字元被忽略,之前的字元被跳過(字元從0開始編号)。 - f n 與- n相同,這裡n是字段數。 - s n 與+n相同,這裡n是字元數。 退出狀态

該指令傳回以下退出值: 0 指令運作成功。 >0 發生錯誤。

補充 檔案經過處理後在它的輸出檔案中可能會出現重複的行。例如,使用cat指令将兩個檔案合并後,再使用sort指令進行排序,就可能出現重複行。這時可以使用uniq指令将這些重複行從輸出檔案中删除,隻留下每條記錄的唯一樣

示例 要删除名為 fruit 檔案中的重複行并将其儲存到一個名為 newfruit 的檔案中,輸入: uniq fruit newfruit 如果 fruit 檔案包含下列行: apples apples peaches pears bananas cherries cherries 則在您運作uniq 指令後 newfruit 檔案将包含下列行: apples peaches pears bananas cherries 檔案/usr/bin/uniq 包含 uniq 指令。

# uniq -c  的用法,例如: harley casely weedly harley linda #cut -c 1-8 | sort | uniq -c > result.txt 1 casely 2 harley 1 linda 1 weekly

1. 顯示檔案example中不重複的行。 uniq - u example 2. 顯示檔案example中不重複的行,從第2個字段的第2個字元開始做比較。 uniq - u - 1 +1 example

轉自:http://blog.csdn.net/tianmo2010/article/details/6997683

繼續閱讀