|
|
|
sh - сгруппировать записи в файле
|
|||
|---|---|---|---|
|
#18+
Добрый вечер. Подскажите кто в курсе дела. Имеентся файл вида: файл №1 код товара | cумма | дата 1 10 20090914 2 20 20090914 3 30 20090914 1 10 20090921 1 10 20090914 2 20 20090914 нужно обработать файл №1 и получить результат вида: 1 20 20090914 1 10 20090921 2 40 20090914 3 30 20090914 Вобщем если бы файл №1 представлял собой таблицу БД, то это можно было бы сделать при поможи простого запроса: select cod_tovara, sum(summa), p_data from file_1 group by cod_tovata, p_data Так вот вопрос: нет ли стандартной команды? такой я не нашел. Как быть, циклами на awk "собрать" не проблем или есть способ лучьше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2009, 20:28 |
|
||
|
sh - сгруппировать записи в файле
|
|||
|---|---|---|---|
|
#18+
fics, cat файл №1 | sort | uniq ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2009, 22:14 |
|
||
|
sh - сгруппировать записи в файле
|
|||
|---|---|---|---|
|
#18+
pavlenkofics, cat файл №1 | sort | uniq ? Да только кто сумму посчитает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2009, 22:36 |
|
||
|
sh - сгруппировать записи в файле
|
|||
|---|---|---|---|
|
#18+
спасибо unix -c (-с это количество повторяющихся записей), его можно умножать на сумму но это никак не одна команда, как я задавал вопрос, а если прийдется группировать по n...полям, тогда опять все ручками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2009, 23:10 |
|
||
|
sh - сгруппировать записи в файле
|
|||
|---|---|---|---|
|
#18+
fics, Не сразу понял условия задачи. Тогда может так : cat файл №1 | perl -lane '$purchase{$F[0]}{$F[2]}+=$F[1]; END { for $code ( keys %purchase ) { for $date ( keys %{ $purchase{$code} } ) { print "$code $purchase{$code}{$date} $date "; } } } ' Там еще при желании можно добавить чтобы вывод был не в зависимости от первого встречающегося кода товара а сортировать вывод по одному из полей. Но вроде как в запросе сортировки нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2009, 00:33 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=36195323&tid=1485514]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 436ms |

| 0 / 0 |
