【发布时间】:2017-03-02 09:59:24
【问题描述】:
好的,所以我想删除重复的行,但它比这更复杂..
我有一个名为 users.txt 的文件,文件示例是:
users:email@email.com
users1:email@email.com
现在由于我的系统中的一个错误,人们可以使用与其他人相同的电子邮件进行注册,所以如果线路多次使用相同的电子邮件,我想删除,问题示例:
user:display:email@email.com
user2:email@email.com
user3:email@email.com
user4:email@email.com
注意用户、用户 2、用户 3、用户 4 都拥有相同的电子邮件。我想删除用户 2、用户 3、用户 4,但保留用户 .. 反之亦然(第一个被请求提取)删除任何其他包含相同电子邮件的行..
如果
email@email.com is in 20 lines remove 19
spam@spam.com is in 555 lines remove 554
还有第四个..
【问题讨论】:
-
使用电子邮件作为
awk数组中的索引。在处理每一行时,如果电子邮件不在数组中,则打印该行并将其添加到数组中。 -
你能解释一下“第一个被要求取走”是什么意思吗?您选择保留哪条线的标准到底是什么?按字母顺序排列的第一个用户名?第一个出现在文件中?
标签: linux bash awk gawk gnuwin32