正则表达式在评论之前删除重复项

时间:2014-04-07 16:52:45

标签: regex bash notepad++

我已经列出了他们为一个组织参加的人员和活动日期,我正在尝试将其解析为参加活动的人员名单。我正在寻找一个正则表达式或脚本,可以在评论之前找到重复项,删除整个重复行,并计算它们在此列表中出现的次数。即:

John #March 13, 2013
John #April 4, 2013
Mark #February 20, 2013
John #July 8, 2013

变为

John #3
Mark #1

如果这太复杂了,我决定只删除重复项而不计算他们参加的事件数量。

2 个答案:

答案 0 :(得分:0)

这件事可以使用Perl one liner命令完成:

perl -le 'while(<>){$h{$1}++ if m/^(\S+)#?/} print "$_ #$h{$_}" for keys %h' input.txt

这是逐行读取文件并将名称保存到哈希中。之后,它只是从哈希中打印出一个带有计数的键。

答案 1 :(得分:0)

另一种方法是sed,sort和uniq:

sed 's/ *#.*//' input.txt | sort | uniq -c