我有一个像这样的列表
ABC|Hello1
ABC|Hello2
ABC|Hello3
DEF|Test
GHJ|Blabla1
GHJ|Blabla2
我希望它是这样的:
ABC|Hello1
DEF|Test
GHJ|Blabla1
所以我想在:|之前删除每行中的重复项 并且只让第一个出现在那里。
答案 0 :(得分:1)
使用awk
$ awk -F"|" '!seen[$1]++ {print $0}' file
ABC|Hello1
DEF|Test
GHJ|Blabla1
这里的技巧是在这种情况下设置适当的字段分隔符"|"
,之后可以从$1
开始逐列访问各列。在这个答案中,我维护一个唯一值数组seen
并仅在以前没有看到来自$1
的值时打印该行。