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:)看起来您的空格键有问题:)看起来您的空格键有问题:)