AWK: Сумма значений в столбце на основе записей в другом столбце [дубликат]

Если вы можете / хотите переключить оболочку, вы можете сделать это в zsh, установив псевдоним как

alias -g gr="| grep"
3
25.09.2018, 16:59
1 ответ

Если у вас установлен GNU awk, вам не нужно использовать другой инструмент sortдля установки правильного порядка, но вы можете сделать это в самом awk. Вы можете задать способ обхода массива, установив специальную переменную PROCINFO["sorted_in"]. См. Использование предопределенных порядков сканирования массива с помощью gawk

.

Однако в вашем случае вы можете настроить сортировку по индексу в порядке возрастания

awk -vFS="|" -vOFS="|"  '{ 
                             primaryKey=($1 FS $2)
                         }{ 
                             db[primaryKey]+=$3; next 
                         } END { 
                             PROCINFO["sorted_in"] = "@ind_str_asc"
                             for(key in db) 
                                 print key, db[key] 
                         }' file
1
27.01.2020, 21:25

Теги

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