LINUX.ORG.RU

Одномерный массив в awk

 ,


0

1

Всем доброго времени суток.

изучаю bash, столкнулся со следующей проблемой: выгрепливаю из логов информацию такого вида

Abdullaev 08 66
Abdullaev 09 19
Abdullaev 10 87
Abdullaev 11 122
Abdullaev 12 224
Abdullaev 13 132
Abdullaev 14 125
Abdullaev 15 114
AIsaev 07 57
AIsaev 08 130
AIsaev 09 258
AIsaev 10 208
AIsaev 11 237
AIsaev 12 171
AIsaev 13 173
AIsaev 14 205

где первый столбец это логин, второй - номер часа и третий - кол-во запросов. Задача всю эту инфу поместить в некую горизонтально ориентированную таблицу вида

Пользователь | 00 | 01 | 02 | 03 | 04 | ... | 11 | 12 | 13 | 14 | 15 | 16 | ..... | 23 |

ATerrova | | | | | | |149| 41 | |211| 26 | | | | (ну условно говоря)

как я представляю себе это в своём мире чайника awk -F " " 'BEGIN {hour[25]=0} {if (hour[24]==0) {hour[24]=$1; hour[$2]=$3} else { if ($1==hour[24]) {hour[$2]=$3} if ($1!=hour[24]) {print hour; hour[24]=0} } } END {print hour}'

но понятно что ни фига это не работает.

И тут просьба к знатокам, подопните в нужную сторону, куда копать? а то что-то я совсем запутался. Или же сам подход в принципе не верен? Буду благодарен за любые советы.

Одномерный массив — это только либо строка либо только столбец. Вам же надо таблицу — двухмерный массив. Так как массивы в awk по уполчанию ассоциативные, то и проблем с dim[Пользователь][час]=запросы — никаких.

vodz ★★★★★ ()
Ответ на: комментарий от vodz

Я почему именно про одномерный массив написал, так как одномерный массив это строка, Я создаю массив из 25 элементов, заполняю их нулями или пробелами, а затем при проходе awk в ячейку массива соответствующую номеру часа кладу значение третьего столбца. Получается всё что было пусто останется пусто а заполнятся только те ячейки которые известны. в итоге получаем строку. ну..... как получаем..... это я так надеялся.

De_Archangel ()
Ответ на: комментарий от De_Archangel

ну..... как получаем.

Ну если вам сумма по всем пользователям нужна, то так и пишите.

vodz ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.