<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: sh - сгруппировать записи в файле</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8432.html</link>
    <description>Добрый вечер. Подскажите кто в курсе дела.&lt;br&gt;Имеентся файл вида:&lt;br&gt;&lt;br&gt;файл &amp;#8470;1&lt;br&gt;код товара &amp;#124; cумма &amp;#124; дата &lt;br&gt;1 10 20090914&lt;br&gt;2 20 20090914&lt;br&gt;3 30 20090914&lt;br&gt;1 10 20090921 &lt;br&gt;1 10 20090914&lt;br&gt;2 20 20090914&lt;br&gt;&lt;br&gt;нужно обработать файл &amp;#8470;1 и получить результат вида:&lt;br&gt;1 20 20090914&lt;br&gt;1 10 20090921&lt;br&gt;2 40 20090914&lt;br&gt;3 30 20090914&lt;br&gt;&lt;br&gt;&lt;br&gt;Вобщем если бы файл &amp;#8470;1 представлял собой таблицу БД, то&lt;br&gt;это можно было бы сделать при поможи простого запроса:&lt;br&gt;select cod_tovara, sum(summa), p_data from file_1 group by cod_tovata, p_data&lt;br&gt;Так вот вопрос: нет ли стандартной команды? такой я не нашел.&lt;br&gt;Как быть, циклами на awk &quot;собрать&quot; не проблем или есть способ лучьше?&lt;br&gt;</description>

<item>
    <title>sh - сгруппировать записи в файле (fics)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8432.html#7</link>
    <pubDate>Tue, 15 Sep 2009 09:46:37 GMT</pubDate>
    <description>&amp;gt;coder&#064;proger-ub5 ~ $ sort -n -k1,3 data.txt &amp;#124; uniq -c &amp;#124; awk &lt;br&gt;&amp;gt;&apos;&#123;printf(&quot;&#037;d &#037;d &#037;d&#092;n&quot;, $2, $1*$3, $4)&#125;&apos; &lt;br&gt;&amp;gt;1 20 20090914 &lt;br&gt;&amp;gt;1 10 20090921 &lt;br&gt;&amp;gt;2 40 20090914 &lt;br&gt;&amp;gt;3 30 20090914 &lt;br&gt;&lt;br&gt;Это если суммы одинаковые, а если &lt;br&gt;1 10.9 20090921&lt;br&gt;да решил я свой вопрос, хотел просто за команду такую узнать и все.&lt;br&gt;Спасибо.&lt;br&gt;</description>
</item>

<item>
    <title>sh - сгруппировать записи в файле (phpcoder)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8432.html#6</link>
    <pubDate>Tue, 15 Sep 2009 05:31:03 GMT</pubDate>
    <description>coder&#064;proger-ub5 ~ $ sort -n -k1,3 data.txt &amp;#124; uniq -c &amp;#124; awk &apos;&#123;printf(&quot;&#037;d &#037;d &#037;d&#092;n&quot;, $2, $1*$3, $4)&#125;&apos;&lt;br&gt;1 20 20090914&lt;br&gt;1 10 20090921&lt;br&gt;2 40 20090914&lt;br&gt;3 30 20090914&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>sh - сгруппировать записи в файле (Slavaz)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8432.html#5</link>
    <pubDate>Mon, 14 Sep 2009 21:24:17 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt; можно либо unixODBC понять (пушкой по воробьям, но зато непосредственно работа через SQL с текстовым файлом);&lt;br&gt;&amp;gt;Ага круто вы взяли, если бы я понял, уже сменил бы работу &lt;br&gt;&lt;br&gt;- можно либо unixODBC понять &lt;br&gt;+ можно либо unixODBC поднять &lt;br&gt;&lt;br&gt;Извините, ошибся. :)&lt;br&gt;&lt;br&gt;&amp;gt; да это сильно уже замудрено в sqllite... &lt;br&gt;&lt;br&gt;да нет. Две команды: первая создаёт БД, вторая команда - вкачивает данные. И дальнейшая работа с данными происходит через SQL-запросы. Сделать скрипт, &quot;обвязывающий&quot; данные SQLем - как два пальца :) Фактически, в предыдущем посту я уже написал скрипт.&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Вобщем если бы файл &amp;#8470;1 представлял собой таблицу БД, то&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; это можно было бы сделать при поможи простого запроса:&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; select cod_tovara, sum(summa), p_data from file_1 group by cod_tovata, p_data&lt;br&gt;&lt;br&gt;Это предложение я воспринял как условие задачи: &quot;по-возможности, работать данными через SQL-команды&quot;. Если неправильно понял - сорри.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>sh - сгруппировать записи в файле (fics)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8432.html#4</link>
    <pubDate>Mon, 14 Sep 2009 20:08:56 GMT</pubDate>
    <description>&amp;gt;&amp;gt; можно либо unixODBC понять (пушкой по воробьям, но зато непосредственно работа через SQL с текстовым файлом);&lt;br&gt;&lt;br&gt;Ага круто вы взяли, если бы я понял, уже сменил бы работу&lt;br&gt;</description>
</item>

<item>
    <title>sh - сгруппировать записи в файле (fics)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8432.html#3</link>
    <pubDate>Mon, 14 Sep 2009 20:06:09 GMT</pubDate>
    <description>да это сильно уже замудрено в sqllite... Я просто имел введу, что есть, к примеру, команда join для склеивания, почти аналогичная sql-ой и может есть для такой задачи как в вопросе, а так да: uniq - c, получили количесво - повторный проходом  &lt;br&gt;awk &apos;&#123;$kol_vo*$sum&#125;&apos; &amp;gt; file&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>sh - сгруппировать записи в файле (Slavaz)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8432.html#2</link>
    <pubDate>Mon, 14 Sep 2009 19:09:36 GMT</pubDate>
    <description>&amp;gt;Вобщем если бы файл &amp;#8470;1 представлял собой таблицу БД, то &lt;br&gt;&amp;gt;это можно было бы сделать при поможи простого запроса: &lt;br&gt;&amp;gt;select cod_tovara, sum(summa), p_data from file_1 group by cod_tovata, p_data &lt;br&gt;&amp;gt;Так вот вопрос: нет ли стандартной команды? такой я не нашел. &lt;br&gt;&amp;gt;Как быть, циклами на awk &quot;собрать&quot; не проблем или есть способ лучьше? &lt;br&gt;&lt;br&gt;Наверное, тут только awk или perl. Чтобы работать как с SQL, можно либо unixODBC понять (пушкой по воробьям, но зато непосредственно работа через SQL с текстовым файлом);&lt;br&gt;&lt;br&gt;Либо конвертнуть файл в sqlite и потом работать с данными через SQL-запросы. Например, так:&lt;br&gt;&lt;br&gt;#!/bin/sh&lt;br&gt;sqlite3 test.sq3 &apos;create table file_1 (cod_tovara int, summa int, p_data timestamp)&apos;&lt;br&gt;sqlite3 test.sq3 &quot;$(grep -P &apos;^&#092;d&apos; text.txt &amp;#124; awk &apos;&#123;print &quot;insert into file_1 values (&quot;$1&quot;,&quot;$2&quot;,&quot;$3&quot;);&quot;&#125;&apos;)&quot;&lt;br&gt;&lt;br&gt;ну и дальше уже приведенной Вами командой выгребаем нужные данные:&lt;br&gt;sqlite3 test.sq3 &quot;select cod_tovara, sum(summa), p_data from file_1 group by cod_tovara, p_data&quot;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>sh - сгруппировать записи в файле (DearFriend)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/8432.html#1</link>
    <pubDate>Mon, 14 Sep 2009 19:02:53 GMT</pubDate>
    <description>cat filename &amp;#124; sort &amp;#124; uniq&lt;br&gt;</description>
</item>

</channel>
</rss>
