linux uniq 命令詳解__linux
來源:互聯網
上載者:User
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 個位元組(包含所有換行字元),並且其中不能包含Null 字元。 預設情況下,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 命令用Null 字元串進行比較。這個標誌和 -Fields 標誌是等價的。 -s Characters 忽略由 Characters 變數指定的字元的數目。如果 Characters 變數的值超過輸入行中的字元的數目, uniq 用Null 字元串進行比較。如果同時指定 -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