自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux Shell教程 - 如何刪除重復(fù)的文本行

系統(tǒng) Linux
需要對日志文件中的數(shù)據(jù)進(jìn)行排序,但是有太多重復(fù)的行。 如何從GNU/Linux下的文本文件中刪除所有重復(fù)的行?您需要使用shell管道以及以下兩個Linux命令行實用程序來排序和刪除重復(fù)的文本行。

需要對日志文件中的數(shù)據(jù)進(jìn)行排序,但是有太多重復(fù)的行。 如何從GNU/Linux下的文本文件中刪除所有重復(fù)的行?

您需要使用shell管道以及以下兩個Linux命令行實用程序來排序和刪除重復(fù)的文本行:

1、sort命令 - 在Linux和類Unix系統(tǒng)中對文本文件行進(jìn)行排序。

2、uniq命令 - 在Linux或Unix上運(yùn)行或省略重復(fù)的行

使用Sort,Uniq和Shell管道刪除重復(fù)行

使用以下語法: 

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

使用uniq刪除重復(fù)的行

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

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

樣本輸出: 

  1. Linux公社(www.linuxidc.com)于2006年9月25日注冊并開通網(wǎng)站  
  2. Linux現(xiàn)在已經(jīng)成為一種廣受關(guān)注和支持的一種操作系統(tǒng)  
  3. IDC是互聯(lián)網(wǎng)數(shù)據(jù)中心,LinuxIDC就是關(guān)于Linux的數(shù)據(jù)中心。  
  4. 實時發(fā)布***Linux資訊  
  5. Linux公社是專業(yè)的Linux系統(tǒng)門戶網(wǎng)站  
  6. 實時發(fā)布***Linux資訊,包括Linux、Ubuntu、Fedora、RedHat  
  7. Linux教程、Linux認(rèn)證、SUSE Linux、Android、Oracle、Hadoop等技術(shù)。  
  8. 實時發(fā)布***Linux資訊  
  9. 實時發(fā)布***Linux資訊 

從Linux上的文本文件中刪除重復(fù)的行

鍵入以下命令以刪除所有重復(fù)行:

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

樣本輸出:  

  1. IDC是互聯(lián)網(wǎng)數(shù)據(jù)中心,LinuxIDC就是關(guān)于Linux的數(shù)據(jù)中心。 
  2. Linux公社(www.linuxidc.com)于2006年9月25日注冊并開通網(wǎng)站  
  3. Linux公社是專業(yè)的Linux系統(tǒng)門戶網(wǎng)站  
  4. Linux教程、Linux認(rèn)證、SUSE Linux、Android、Oracle、Hadoop等技術(shù)。  
  5. Linux現(xiàn)在已經(jīng)成為一種廣受關(guān)注和支持的一種操作系統(tǒng)  
  6. 實時發(fā)布***Linux資訊,包括Linux、Ubuntu、Fedora、RedHat 

在這里,

-u:檢查是否有嚴(yán)格的排序,刪除所有重復(fù)的行。

在Linux上排序文件內(nèi)容

我們假設(shè)您有一個名為users.txt的文件: 

  1. cat linuxidc.txt  
  2. Linux Idc 22/11/72  
  3. Zhang San 12/01/69  
  4. Li Ai  30/12/88  
  5. A Bao 15/08/76  
  6. Chen Xiao  05/06/77  
  7. Shen Lin 13/02/75  
  8. Da Cen 21/10/73  
  9. Zhang San 12/01/69 

讓我們排序,運(yùn)行:

  1. sort linuxidc.txt 

接下來按姓氏排序,運(yùn)行:

  1. sort -r linuxidc.txt 

想以相反的順序排序? 嘗試:

  1. sort +2 linuxidc.txt 

您可以在排序文件時消除文件中的任何重復(fù)條目,運(yùn)行: 

  1. sort +2 -u linuxidc.txt  
  2. sort -u linuxidc.txt 

沒有任何選項,sort會比較文件中的整行,并以ASCII順序輸出。 您可以使用選項控制輸出。

如何使用uniq命令刪除Linux上的重復(fù)行

使用以下文件:

  1. linuxidc@linuxidc:~/www.linuxidc.com$ cat -n linuxidc.txt 

樣本輸出:   

  1. 1 www.linuxidc.com  
  2.    2 Linux公社  
  3.    3 linuxidc  
  4.    4 linuxidc.com  
  5.    5 ------------  
  6.    6 5566778899  
  7.    7 5566778899  
  8.    8 5566778899 

uniq命令從文件中刪除第8行,并將結(jié)果放在名為linuxidc.com.txt的文件中:

  1. uniq linuxidc.txt linuxidc.com.txt 

驗證它:

  1. cat -n linuxidc.com.txt 

如何使用uniq命令刪除重復(fù)的行

如何刪除.txt文件中的重復(fù)行并將結(jié)果保存到新文件

請嘗試以下任一語法: 

  1. sort shuru_wenjian | uniq > shuchu_wenjian  
  2. sort shuru_wenjian | uniq -u | tee shuchu_wenjian 

總結(jié)

sort命令用于對文本文件的行進(jìn)行排序,uniq過濾從文本文件中復(fù)制相鄰的行。 這些命令有許多有用的選項。 我建議您通過鍵入以下man命令來閱讀手冊頁: 

  1. man sort  
  2. man uniq  
責(zé)任編輯:龐桂玉 來源: Linux公社
相關(guān)推薦

2018-10-17 09:20:31

Linux命令重復(fù)文件

2019-09-26 06:50:16

Linux命令回車字符

2015-03-30 11:34:19

LinuxFSlint

2017-12-18 10:12:48

LinuxShell命令

2021-08-09 11:31:54

Linux重復(fù)相片刪除

2011-04-13 13:13:09

重復(fù)數(shù)據(jù)刪除

2020-12-14 06:57:37

shell

2016-03-30 11:16:33

2010-07-07 16:53:54

SQL Server重

2015-08-13 09:09:10

LinuxdupeGuru

2017-03-02 18:10:20

LinuxShell命令

2021-06-22 09:32:40

Linuxshell命令

2009-04-20 15:54:04

SQL Server重復(fù)行

2010-10-27 16:56:05

Oracle重復(fù)記錄

2021-11-17 11:20:57

LinuxGNOME Shell桌面

2010-10-13 17:07:46

MySQL刪除重復(fù)記錄

2018-04-27 13:00:00

數(shù)據(jù)庫MySQL刪除重復(fù)行

2022-11-01 15:38:22

LinuxShell

2023-05-20 17:45:25

LinuxShell

2015-09-02 15:47:05

命令行fdupesLinux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號