可以说我有一个如下文件:
我想将所有十进制数字存储在哈希中。
hello world 10 20
world 10 10 10 10 hello 20
hello 30 20 10 world 10
我在看这个
这很好用:
> perl -lne 'push @a,/\d+/g;END{print "@a"}' temp
10 20 10 10 10 10 20 30 20 10 10
然后我需要计算每个正则表达式的出现次数。
为此,我认为将所有匹配项存储在哈希中并为每个键分配一个递增值会更好。
所以我尝试了:
perl -lne '$a{$1}++ for ($_=~/(\d+)/g);END{foreach(keys %a){print "$_.$a{$_}"}}' temp
这给了我一个输出:
> perl -lne '$a{$1}++ for ($_=~/(\d+)/g);END{foreach(keys %a){print "$_.$a{$_}"}}' temp
10.4
20.7
任何人都可以纠正我的错误吗?
我期望的输出是:
10.7
20.3
30.1
虽然我可以在 awk 中做到这一点,但我只想在 perl 中做到这一点
输出的顺序也不是我关心的问题。