Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
perl/shellscript标记行的总和_Perl_Sum_Shell - Fatal编程技术网

perl/shellscript标记行的总和

perl/shellscript标记行的总和,perl,sum,shell,Perl,Sum,Shell,我的输入看起来像 5 X 8 Y 3 Z 9 X 我想要的输出是对每个“标签”的数值求和;e、 g 14 X 8 Y 3 Z 想知道是否有一个光滑的一行代码我可以使用(沿着使用awk对整数列表求和的一行代码)。像这样的东西应该可以做到: perl -ne '$table{$2} += $1 if /(\d+)\s+(.+)/; END {print "$table{$_} $_\n" for keys %table}' 或使用自动拆分: perl -ane '$table{$F[1] or

我的输入看起来像

5 X
8 Y
3 Z
9 X
我想要的输出是对每个“标签”的数值求和;e、 g

14 X
8 Y
3 Z

想知道是否有一个光滑的一行代码我可以使用(沿着使用awk对整数列表求和的一行代码)。

像这样的东西应该可以做到:

perl -ne '$table{$2} += $1 if /(\d+)\s+(.+)/; END {print "$table{$_} $_\n" for keys %table}'
或使用自动拆分:

perl -ane '$table{$F[1] or next} += $F[0]; END {print "$table{$_} $_\n" for keys %table}'

像这样的事情应该可以做到:

perl -ne '$table{$2} += $1 if /(\d+)\s+(.+)/; END {print "$table{$_} $_\n" for keys %table}'
或使用自动拆分:

perl -ane '$table{$F[1] or next} += $F[0]; END {print "$table{$_} $_\n" for keys %table}'

尽我所能做到:

perl -alne 'END{print"$X{$_} $_"for sort{$X{$b}<=>$X{$a}}keys%X}$X{$F[1]}+=$F[0]'
perl-alne'END{print“$X{${$}$}${u”用于排序{$X{$b}$X{$a}}键%X}$X{$F[1]}+=$F[0]'

尽可能光滑:

perl -alne 'END{print"$X{$_} $_"for sort{$X{$b}<=>$X{$a}}keys%X}$X{$F[1]}+=$F[0]'
perl-alne'END{print“$X{${$}$}${u”用于排序{$X{$b}$X{$a}}键%X}$X{$F[1]}+=$F[0]'

试图使其尽可能不混淆:) 按“标记”对输出进行排序


perl-alne'$counts{$F[1]}+=$F[0];结束{print“$counts{${$}${”for sort(键%counts)}”

尝试使其尽可能不模糊:) 按“标记”对输出进行排序

perl-alne'$counts{$F[1]}+=$F[0];结束{print“$counts{$\u}$\ ux”进行排序(键%counts)}

以随机顺序输出

perl -alne'$t{$F[1]}+=$F[0]}{print"$t{$_} $_"for keys%t'
按标签字母顺序排序

perl -alne'$t{$F[1]}+=$F[0]}{print"$t{$_} $_"for sort keys%t'
按值排序

perl -alne'$t{$F[1]}+=$F[0]}{print"$t{$_} $_"for sort{$t{$b}<=>$t{$a}}keys%t'
perl-alne'$t{$F[1]}+=$F[0]}{为排序{$t{$b}$t{$a}}键%t打印“$t{${$}$}$}$}”
以随机顺序输出

perl -alne'$t{$F[1]}+=$F[0]}{print"$t{$_} $_"for keys%t'
按标签字母顺序排序

perl -alne'$t{$F[1]}+=$F[0]}{print"$t{$_} $_"for sort keys%t'
按值排序

perl -alne'$t{$F[1]}+=$F[0]}{print"$t{$_} $_"for sort{$t{$b}<=>$t{$a}}keys%t'
perl-alne'$t{$F[1]}+=$F[0]}{为排序{$t{$b}$t{$a}}键%t打印“$t{${$}$}$}$}”

您缺少用于在所有输入上循环的
-n
标志。(Nice FGITW,BTW):)您缺少用于在所有输入上循环的
-n
标志。(Nice FGITW,BTW:)看起来您的空格键有问题:)看起来您的空格键有问题:)