簡體   English   中英

如何從文本文件中刪除具有重復值的行

[英]How to remove lines with repeated value from a text file

我在一個列中有一個包含各種代碼(每行一個代碼)的文本文件,其中一些出現了多次(總是按順序)。 我想知道如何刪除具有重復值的行。

示例:File1.dat

84578    
84581    
84627    
84761    
84761    
84792    
84792   
84792    
84886    
84886    
84905    
84905    
84905

我希望輸出為:

84578    
84581    
84627    
84761    
84792    
84886    
84905

注意:在我的文件中,行之間沒有空格。 任何解決方案都可以使用,腳本,終端命令等。在此先感謝。

由於重復的行是連續的,因此在Linux / MSYS中,您可以簡單地使用uniq

輸出數據:

$ uniq lines.txt
84578
84581
84627
84761
84792
84886
84905

Python解決方案,使用生成器理解來檢查第一行或第二行是否與上一行不同,以在輸出文件中發布該行:

with open("lines.txt") as fr,open("uniq.txt","w") as fw:
    for line in (x for i,x in enumerate(fr) if i==0 or lines[i-1]!=x):
        fw.write(line)
file = open("FileWithDublicates.txt","r");
lines = file.readlines()
lines = set(lines)
file.close
file = open("FileWithDublicates.txt","w");
for line in lines:
    file.write(line)

這應該可以解決問題。 但換行符也只會存在一次

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM