2014-02-06 63 views
0

我正在尋找一種方法從我的記事本++文件中刪除重複的行。每行說的行不完全重複。這是情況。我有一個大概的公司名稱文件,其概率值也是如此(每一個都由一個製表符分隔)。所以格式將是這樣的:從記事本中刪除重複的行++

ATT .7213 
SAMSUNG .01294 
SAMSUNG .90222 

所以,我需要刪除這些行之一,因爲在第一列的匹配。只要我最後結束了一行,我並不確定我需要刪除哪一個。我試圖對TextFX使用獨特的排序,但它正在尋找整個行重複,而不僅僅是第一列。如果有人能提供一個方便的解決方案來解決這個問題,我將不勝感激。使用awk,sed或cut的Bash腳本回答也可以接受,也可以使用正則表達式。

謝謝!

+0

可能的重複[在記事本++中刪除重複行](http://stackoverflow.com/questions/3958350/removing-duplicate-rows-in-notepad) –

+0

@PankajJaju問題本身是不同的,但它似乎是其中之一對另一個問題的答案可以用來解決這個問題。 – chepner

回答

1

使用sort

sort -k1,1 -u companies.txt 

輸出將包括實線,但只排序鍵(第一場)將被認爲是用於識別重複。

+0

謝謝你完美的工作,現在我有我需要的東西。因此,使用-k1排序和指定關鍵字段1,那麼逗號後面的1到底是什麼?我知道-u是爲了尋求唯一性。 – Tastybrownies

+0

'-k1'本身在記錄的末尾使用字段1。例如,要對字段2到5進行排序,可以使用'-k2,5'。 '-k1,1'將比較限制在第一個字段和第一個字段(因爲它是一個元素範圍)。 – chepner

+0

好的,謝謝你的好,並解釋說。很高興知道現在如何工作。 – Tastybrownies

3

使用awk,你可以說:

awk '!a[$1]++' filename 

保持有第一場的唯一值只有線。

+0

由於這隻保留具有唯一值的那些值,它是否會刪除兩個SAMSUNG行? –

+0

它不會刪除'SAMSUNG'行;它寧願保留第一個,而忽略其餘部分。 – devnull

+0

如果是這樣,那麼你在答案中的解釋有點混亂。說它會保留*僅*具有*獨特*值的行將意味着重複行的所有實例將不被保留(因爲第一行和其餘都不唯一)。 –