我已经列出了他们为一个组织参加的人员和活动日期,我正在尝试将其解析为参加活动的人员名单。我正在寻找一个正则表达式或脚本,可以在评论之前找到重复项,删除整个重复行,并计算它们在此列表中出现的次数。即:
John #March 13, 2013
John #April 4, 2013
Mark #February 20, 2013
John #July 8, 2013
变为
John #3
Mark #1
如果这太复杂了,我决定只删除重复项而不计算他们参加的事件数量。
答案 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