首頁 > 軟體

Linux Shell - 如何使用sort與uniq命令刪除重複的文字行

2020-06-16 16:40:55

需要對紀錄檔檔案中的資料進行排序,但是有太多重複的行。 如何從GNU/Linux下的文字檔案中刪除所有重複的行?

您需要使用shell管道以及以下兩個Linux命令列實用程式來排序和刪除重複的文字行:

1、sort命令 - 在Linux和類Unix系統中對文字檔案行進行排序。

2、uniq命令 - 在Linux或Unix上執行或省略重複的行

使用Sort,Uniq和Shell管道刪除重複行

使用以下語法:

sort {file-name} | uniq -u
sort file.log | uniq -u

使用uniq刪除重複的行

以下是使用cat命令顯示的名為garbage.txt的範例測試檔案:

linuxidc@linuxidc:~/www.linuxidc.com$ cat linuxidc.com.txt

樣本輸出

Linux公社(www.linuxidc.com)於2006年9月25日註冊並開通網站
Linux現在已經成為一種廣受關注和支援的一種作業系統
IDC是網際網路資料中心,LinuxIDC就是關於Linux的資料中心。

實時發布最新Linux資訊

Linux公社是專業的Linux系統入口網站
實時發布最新Linux資訊,包括Linux、UbuntuFedoraRedHat
Linux教學、Linux認證、SUSE Linux、AndroidOracleHadoop等技術。

實時發布最新Linux資訊

實時發布最新Linux資訊

從Linux上的文字檔案中刪除重複的行

鍵入以下命令以刪除所有重複行:

linuxidc@linuxidc:~/www.linuxidc.com$ sort linuxidc.com.txt | uniq -u

樣本輸出:
 
IDC是網際網路資料中心,LinuxIDC就是關於Linux的資料中心。
Linux公社(www.linuxidc.com)於2006年9月25日註冊並開通網站
Linux公社是專業的Linux系統入口網站
Linux教學、Linux認證、SUSE Linux、Android、Oracle、Hadoop等技術。
Linux現在已經成為一種廣受關注和支援的一種作業系統
實時發布最新Linux資訊,包括Linux、Ubuntu、Fedora、RedHat

在這裡,

-u:檢查是否有嚴格的排序,刪除所有重複的行。

在Linux上排序檔案內容

我們假設您有一個名為users.txt的檔案:


IT145.com E-mail:sddin#qq.com