<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Сравнить вывод двух команд, найти разницу</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID15/4385.html</link>
    <description>Есть две некие команды, которые выдают довольно большой объём данных в виде таблиц. Таблицы разные, но в них есть схожая информация. В первой таблице среди прочего в двух столбцах есть комбинации неких чисел и во второй, в других столбцах и строчках есть такие же пары. Мне надо найти разницу - некоторых пар чисел не хватает, надо найти каких именно. &lt;br&gt;&lt;br&gt;Как выделить из вывода каждой из команд нужные мне пары чисел и вывести их - я знаю (допустим, с помощью awk). Но как их потом сравнить между собой и, желательно, без промежуточных файлов? Как-то можно в grep прикрутить вывод другой команды, отфильтрованный с помощью awk? Или ещё какие-то методы есть?&lt;br&gt;</description>

<item>
    <title>Сравнить вывод двух команд, найти разницу (Seryoga2014)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID15/4385.html#12</link>
    <pubDate>Thu, 23 Nov 2017 14:55:24 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Wind River Linux &lt;br&gt;&amp;gt;&amp;gt; echo $SHELL &lt;br&gt;&amp;gt;&amp;gt; /bin/tcsh &lt;br&gt;&amp;gt; Ты бы ещё psh от DataStage себе поставил. Стесняюсь предположить, как ты &lt;br&gt;&amp;gt; пользуешься задним отверстием...&lt;br&gt;&lt;br&gt;Вообще-то это специализированная железка за гору денег, готовое решение, т.е. я там ничего не ставил, не выбирал, оно так было и что-то там менять, устанавливать своё крайне не желательно - железка на поддержке и с этим могут возникнуть проблемы. Специфичные команды работают полноценней из того, что стартует по умолчанию при подключении по ssh. Уж не знаю чем там руководствовались создатели, подбирая shell, но вероятно это не от балды, как и выбор дистрибутива.&lt;br&gt;</description>
</item>

<item>
    <title>Сравнить вывод двух команд, найти разницу (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID15/4385.html#11</link>
    <pubDate>Sat, 18 Nov 2017 09:59:38 GMT</pubDate>
    <description>&amp;gt; Wind River Linux &lt;br&gt;&amp;gt; echo $SHELL &lt;br&gt;&amp;gt; /bin/tcsh &lt;br&gt;&lt;br&gt;Ты бы ещё psh от DataStage себе поставил. Стесняюсь предположить, как ты пользуешься задним отверстием...&lt;br&gt;</description>
</item>

<item>
    <title>Сравнить вывод двух команд, найти разницу (Seryoga2014)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID15/4385.html#10</link>
    <pubDate>Tue, 14 Nov 2017 08:03:14 GMT</pubDate>
    <description>&amp;gt; echo $SHELL &lt;br&gt;&amp;gt; /bin/tcsh &lt;br&gt;&lt;br&gt;Из под bash работает. Спасибо :)&lt;br&gt;</description>
</item>

<item>
    <title>Сравнить вывод двух команд, найти разницу (Seryoga2014)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID15/4385.html#9</link>
    <pubDate>Tue, 14 Nov 2017 07:47:06 GMT</pubDate>
    <description>&amp;gt; если еще актуально, нужно у автора уточнить что за ОС и её &lt;br&gt;&amp;gt; версия, и в каком шеле запускает.&lt;br&gt;&amp;gt; У мена на Rhel 7.4 данная команда так же верно отрабатывает.&lt;br&gt;&lt;br&gt;Wind River Linux&lt;br&gt;&lt;br&gt;echo $SHELL&lt;br&gt;/bin/tcsh&lt;br&gt;</description>
</item>

<item>
    <title>Сравнить вывод двух команд, найти разницу (DiJey)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID15/4385.html#8</link>
    <pubDate>Fri, 10 Nov 2017 08:38:22 GMT</pubDate>
    <description>если еще актуально, нужно у автора уточнить что за ОС и её версия, и в каком шеле запускает.&lt;br&gt;У мена на Rhel 7.4 данная команда так же верно отрабатывает.&lt;br&gt;</description>
</item>

<item>
    <title>Сравнить вывод двух команд, найти разницу (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID15/4385.html#7</link>
    <pubDate>Fri, 03 Nov 2017 19:27:30 GMT</pubDate>
    <description>&amp;gt; этом), а создаются два файла table1 и table2, которые затем обрабатываются? &lt;br&gt;&lt;br&gt;Не создаются, а я предположил, что твои команды уже создали table1.txt и table2.txt&lt;br&gt;Для команд просто:&lt;br&gt;&lt;br&gt;comm -3 &amp;lt;(command1 &amp;#124; sed &apos;s/  */ /g&apos; &amp;#124; cut -d&#092;  -f 8,10&amp;#124;sort -b) &amp;lt;(command2 &amp;#124; sed &apos;s/  */ /g&apos; &amp;#124; cut -d&#092;  -f 10,12&amp;#124;sort -b) &lt;br&gt;&lt;br&gt;&amp;gt; В общем я получил такое: &lt;br&gt;&amp;gt; comm -3 &amp;lt;(sed &apos;s/  */ /g&apos; table1.txt &amp;#124; cut -d&#092;  &lt;br&gt;&amp;gt; -f 8,10&amp;#124;sort -b) &amp;lt;(sed &apos;s/  */ /g&apos; table2.txt &amp;#124; cut &lt;br&gt;&amp;gt; -d&#092;  -f 10,12&amp;#124;sort -b) &lt;br&gt;&amp;gt; Missing name for redirect.&lt;br&gt;&lt;br&gt;Есть мнение, что ты тут соврал - сюда скопировал команду из моего сообщения, а по факту запускал что-то другое, например с пробелами между &#096;&amp;lt;&apos; и &#096;(&apos;. Ещё обрати внимание, что после -d&#092; - два пробела с разным смыслом. Первый - аргумент для -d, второй разделитель - перед -f.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Сравнить вывод двух команд, найти разницу (Andrey Mitrofanov)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID15/4385.html#6</link>
    <pubDate>Thu, 02 Nov 2017 14:52:01 GMT</pubDate>
    <description>&amp;gt; Спасибо. Я бы такую конструкцию вряд ли бы сочинил (про comm что-то &lt;br&gt;&amp;gt; даже и не слышал). Читать придётся не только про comm для &lt;br&gt;&amp;gt; полного понимания.&lt;br&gt;&amp;gt; command1 &amp;#124; awk -F &quot; &quot; &apos;&#123;print $8&quot; &quot;$10&#125;&apos; - я так &lt;br&gt;&amp;gt; получал список чисел 8277 877 из вывода command1 (результат её работы &lt;br&gt;&amp;gt; - таблица1).&lt;br&gt;&lt;br&gt;Кстати, если сравнивать &quot;прямо в awk-е, то &#091;c bash-мизмами, может, и с gawk-измами&#093; :&lt;br&gt;&lt;br&gt;awk &apos;ARGIND==1&#123; &amp;gt;&amp;gt;&amp;gt;тут кладём $8 и $10 в один массив/хэш&amp;lt;&amp;lt;&amp;lt; &#125;&lt;br&gt;ARGIND==2&#123; &amp;gt;&amp;gt;&amp;gt;тут кладём в другой массив данные из другой команды&amp;lt;&amp;lt;&amp;lt; &#125;&lt;br&gt;END&#123; &amp;gt;&amp;gt;&amp;gt;а тут скрещиваем массивы и выводим результат&amp;lt;&amp;lt;&amp;lt;&#125;&lt;br&gt;&apos; &amp;lt;( commnad1)  &amp;lt;( commnad2)&lt;br&gt;&lt;br&gt;&lt;br&gt;Если данных для вывода достаточно уже на втором шаге (&quot;кладём в другой массив&quot;), то его можно &quot;укоротить&quot;-смержить с выводом-скрещиванием из END-а -- делать их прямо там.&lt;br&gt;&lt;br&gt;&amp;gt; Missing name for redirect.&lt;br&gt;&amp;gt; Буду разбираться..</description>
</item>

<item>
    <title>Сравнить вывод двух команд, найти разницу (Seryoga2014)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID15/4385.html#5</link>
    <pubDate>Thu, 02 Nov 2017 13:20:41 GMT</pubDate>
    <description>Спасибо. Я бы такую конструкцию вряд ли бы сочинил (про comm что-то даже и не слышал). Читать придётся не только про comm для полного понимания. &lt;br&gt;&lt;br&gt;command1 &amp;#124; awk -F &quot; &quot; &apos;&#123;print $8&quot; &quot;$10&#125;&apos; - я так получал список чисел 8277 877 из вывода command1 (результат её работы - таблица1).&lt;br&gt;&lt;br&gt;Правильно ли я понимаю, что тут не выводы двух команд (command1, command2) как-то сравниваются без создания промежуточных файлов (в первом сообщении писал об этом), а создаются два файла table1 и table2, которые затем обрабатываются?&lt;br&gt;&lt;br&gt;В общем я получил такое:&lt;br&gt;comm -3 &amp;lt;(sed &apos;s/  */ /g&apos; table1.txt &amp;#124; cut -d&#092;  -f 8,10&amp;#124;sort -b) &amp;lt;(sed &apos;s/  */ /g&apos; table2.txt &amp;#124; cut -d&#092;  -f 10,12&amp;#124;sort -b) &lt;br&gt;Missing name for redirect.&lt;br&gt;&lt;br&gt;Буду разбираться..&lt;br&gt;</description>
</item>

<item>
    <title>Сравнить вывод двух команд, найти разницу (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID15/4385.html#4</link>
    <pubDate>Wed, 01 Nov 2017 19:45:02 GMT</pubDate>
    <description>Ну, как-то так:&lt;br&gt;&lt;br&gt;comm -3 &amp;lt;(sed &apos;s/  */ /g&apos; table1 &amp;#124; cut -d&#092;  -f 8,10&amp;#124;sort -b) &amp;lt;(sed &apos;s/  */ /g&apos; table2 &amp;#124; cut -d&#092;  -f 10,12&amp;#124;sort -b)&lt;br&gt;&lt;br&gt;man comm - убедись, что ты понимаешь что он тебе ответил.&lt;br&gt;</description>
</item>

</channel>
</rss>
