2011-07-12 101 views
1

我需要刪除具有重複值的行。例如,我需要刪除下面的塊中的第1行和第3行,因爲它們包含「Value04」 - 我無法刪除包含Value03的所有行,因爲這些行的數據不是重複的並且必須保留。我可以使用任何編輯器; excel,vim,任何其他Linux命令行。刪除重複單元格的行

最後應該沒有重複的「UserX」值。 User1應該只出現一次。但是,如果用戶1存在兩次,我需要刪除含有「Value04」整條生產線,並保持與「Value03」

Value01,Value03,User1 
Value02,Value04,User1 
Value01,Value03,User2 
Value02,Value04,User2 
Value01,Value03,User3 
Value01,Value03,User4 

你的思路和想法是極大的讚賞之一。

編輯:爲了清晰並從編輯過程中留下話語。

+1

你可以發佈你想在最後? – Randy

+0

第2行不*包含'Value03',除非您從0開始計數。 –

+0

您是否願意刪除這些行:Value01,Value03,User2 | Value01,Value03,User3 | Value01,Value03,User4 – wleao

回答

1

以下awk命令刪除所有而是一個值的在第三列中的第一次出現:

$ awk -F',' '{ 
    if (!seen[$3]) { 
    seen[$3] = 1 
    print 
    } 
}' textfile.txt 

輸出:在Perl

Value01,Value03,User1 
Value01,Value03,User2 
Value01,Value03,User3 
Value01,Value03,User4 
+0

我清除了我的問題... – AaronJAnderson

+0

編輯我的答案。 –

0

同一件事:

perl -F, -nae 'print unless $c{$F[2]}++;' textfile.txt 

這使用autosplit模式:「-F,-a」以逗號分割並將結果放入@F數組