Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / sh - сгруппировать записи в файле / 5 сообщений из 5, страница 1 из 1
14.09.2009, 20:28
    #36195183
fics
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sh - сгруппировать записи в файле
Добрый вечер. Подскажите кто в курсе дела.
Имеентся файл вида:

файл №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 "собрать" не проблем или есть способ лучьше?
...
Рейтинг: 0 / 0
14.09.2009, 22:14
    #36195323
pavlenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sh - сгруппировать записи в файле
fics,

cat файл №1 | sort | uniq ?
...
Рейтинг: 0 / 0
14.09.2009, 22:36
    #36195356
fics
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sh - сгруппировать записи в файле
pavlenkofics,

cat файл №1 | sort | uniq ?

Да только кто сумму посчитает?
...
Рейтинг: 0 / 0
14.09.2009, 23:10
    #36195384
fics
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sh - сгруппировать записи в файле
спасибо unix -c (-с это количество повторяющихся записей), его можно умножать на сумму
но это никак не одна команда, как я задавал вопрос, а если прийдется группировать
по n...полям, тогда опять все ручками.
...
Рейтинг: 0 / 0
15.09.2009, 00:33
    #36195446
pavlenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sh - сгруппировать записи в файле
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 "; } } } '

Там еще при желании можно добавить чтобы вывод был не в зависимости от первого встречающегося кода товара а сортировать вывод по одному из полей. Но вроде как в запросе сортировки нет.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / sh - сгруппировать записи в файле / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]