【发布时间】:2012-05-02 21:04:19
【问题描述】:
我有一个包含 3 列的输入文件,我想打印第三列没有重复的行。因此,如果我的输入数据如下所示:
0,1,abc
0,2,abc
0,5,xyz
我会打印:
0,1,abc
0,5,xyz
我最初是从下面开始的,但它没有产生任何输出。我在这行做错了什么?
perl -ne '/^[0-9]+,[0-9]+,(.+)/ && ++$a{$1} && print "$_ $a{$1}\n" if $a{$1}>0'
请注意,我不是在寻找解决问题的方法,因为我以不同的方式对其进行了编码。但我对为什么上面的行没有达到我的预期很感兴趣,因为它暴露了我对 perl 理解的差距。
【问题讨论】:
-
匹配永远不会成功。您的模式需要双引号字符,但您的数据不包含任何双引号字符。不要说“没用”!!告诉我们发生了什么,没有输出?输出不正确?烟从通风口冒出来?
-
抱歉,我已经修复了双引号问题并为清晰起见进行了编辑
标签: perl