Сложение значений

[1176209] Лучший способ:
  • Для записи, coreutils сортирует v7.0 (2008-10-05) имеет необходимую функциональность: [1176637]http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=blob_plain;f=NEWS;hb=HEAD
  • 1
    12.06.2015, 01:30
    2 ответа
    awk '$0 == $0+0{
                    summ += $0
                    next}
                   {
                    if(summ)
                        format="%06d\n%s\n"
                    else
                        format="%s%s\n"
                    printf format, summ, $0
                    summ=""}
         END       {
                    if(summ)
                        printf "%06d\n", summ}' foo.txt
    
    3
    27.01.2020, 23:20

    В Perl:

    $ perl -lne 'if(/_sg/){print "$n\n$s" if defined($n); $n=$_; $s=0;}
                 else{$s+=$_}END{print "$n\n$s"}' file 
    Lillypaul_sg
    614409
    Ammy_sg
    3
    ramaswamy_sg
    36
    tommy_sg
    137480
    

    Если вы хотите, чтобы числа были дополнены нулями, если они меньше 6 цифр (как в исходном вопросе):

    $ perl -lne 'if(/_sg/){printf "%s\n%0.6d\n",$n,$s if defined($n); $n=$_; $s=0;}
                 else{$s+=$_}END{printf "%s\n%0.6d\n",$n,$s}' file 
    
    1
    27.01.2020, 23:20

    Теги

    Похожие вопросы