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

файл №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
sh - сгруппировать записи в файле
    #36195323
pavlenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fics,

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

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

Да только кто сумму посчитает?
...
Рейтинг: 0 / 0
sh - сгруппировать записи в файле
    #36195384
fics
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо unix -c (-с это количество повторяющихся записей), его можно умножать на сумму
но это никак не одна команда, как я задавал вопрос, а если прийдется группировать
по n...полям, тогда опять все ручками.
...
Рейтинг: 0 / 0
sh - сгруппировать записи в файле
    #36195446
pavlenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
5 сообщений из 5, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / sh - сгруппировать записи в файле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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