2016-07-04 23 views
0

我有這樣刪除重複的線(僅限第一部分)

ABC|Hello1 
ABC|Hello2 
ABC|Hello3 
DEF|Test 
GHJ|Blabla1 
GHJ|Blabla2 

名單,我希望它是這樣的:

ABC|Hello1 
DEF|Test 
GHJ|Blabla1 

,所以我想刪除重複項之前的每行:| ,只讓第一個在那裏。

+0

Notepad ++不是一種編程語言... – Chisko

+0

您使用的是什麼語言? – Chisko

+0

你想說這些「重複」行是連續的嗎?所有的'ABC'行都在另一個之下?如果是,您可以在Notepad ++中使用'^(([^ | \ n] + \ |)。*)(?:\ R \ 2。*)+''''1'替換。 –

回答

1

使用awk

$ awk -F"|" '!seen[$1]++ {print $0}' file 
ABC|Hello1 
DEF|Test 
GHJ|Blabla1 

訣竅這裏的簡單方法是設置適當的字段分隔"|"在這種情況下,之後的各列可被訪問逐列開始$1。在這個答案中,我維護一個唯一值數組seen,並且只有在以前沒有看到$1的值時纔打印該行。