<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: разбор двух файлов</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/10231.html</link>
    <description>Добрый день.&lt;br&gt;&lt;br&gt;имеем 2 файла вида:&lt;br&gt;&lt;br&gt;$cat host&lt;br&gt;            &amp;lt;host&amp;gt;host1.fullname&amp;lt;/host&amp;gt;&lt;br&gt;            &amp;lt;ip&amp;gt;721.0.0.1&amp;lt;/ip&amp;gt;&lt;br&gt;            &amp;lt;name&amp;gt;host1.shortname&amp;lt;/name&amp;gt;&lt;br&gt;            &amp;lt;proxy&amp;gt;&lt;br&gt;                &amp;lt;name&amp;gt;proxy1.fullname&amp;lt;/name&amp;gt;&lt;br&gt;            &amp;lt;/proxy&amp;gt;&lt;br&gt;--&lt;br&gt;            &amp;lt;host&amp;gt;host2.fullname&amp;lt;/host&amp;gt;&lt;br&gt;            &amp;lt;ip&amp;gt;721.0.0.2&amp;lt;/ip&amp;gt;&lt;br&gt;            &amp;lt;name&amp;gt;host2.shortname&amp;lt;/name&amp;gt;&lt;br&gt;            &amp;lt;proxy&amp;gt;&lt;br&gt;                &amp;lt;name&amp;gt;proxy2.fullname&amp;lt;/name&amp;gt;&lt;br&gt;            &amp;lt;/proxy&amp;gt;&lt;br&gt;--&lt;br&gt;...&lt;br&gt;$cat ip&lt;br&gt;                &amp;lt;group&amp;gt;&lt;br&gt;                    &amp;lt;name&amp;gt;GROUP1&amp;lt;/name&amp;gt;&lt;br&gt;                    &amp;lt;name&amp;gt;GROUP2&amp;lt;/name&amp;gt;&lt;br&gt;                &amp;lt;/group&amp;gt;&lt;br&gt;                    &amp;lt;ip&amp;gt;721.0.0.1&amp;lt;/ip&amp;gt;&lt;br&gt;                    &amp;lt;dns&amp;gt;host1.fullname&amp;lt;/dns&amp;gt;&lt;br&gt;--&lt;br&gt;                &amp;lt;group&amp;gt;&lt;br&gt;                    &amp;lt;name&amp;gt;GROUP3&amp;lt;/name&amp;gt;&lt;br&gt;                    &amp;lt;name&amp;gt;GROUP4&amp;lt;/name&amp;gt;&lt;br&gt;                &amp;lt;/group&amp;gt;&lt;br&gt;                    &amp;lt;ip&amp;gt;721.0.0.2&amp;lt;/ip&amp;gt;&lt;br&gt;                    &amp;lt;dns&amp;gt;host2.fullname&amp;lt;/dns&amp;gt;&lt;br&gt;--&lt;br&gt;...&lt;br&gt;&lt;br&gt;как выводить мне из двух файлов скриптом следующее&lt;br&gt;&lt;br&gt;--&lt;br&gt;hostname: host1.fullname&lt;br&gt;ip: 7</description>

<item>
    <title>разбор двух файлов (михалыч)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/10231.html#13</link>
    <pubDate>Tue, 10 Jul 2018 16:43:31 GMT</pubDate>
    <description>&amp;gt; Зачем вуду-магия крестянам, Михалыч? Есть же XML парсеры в перле, если не &lt;br&gt;&amp;gt; может осилить то онанизм с регексами вокруг XML - это путь &lt;br&gt;&amp;gt; в никуда.&lt;br&gt;&lt;br&gt;да ладно, что там!&lt;br&gt;я ж так, для собственного удовольствия ))&lt;br&gt;&lt;br&gt;видал, тут вообще аноним почти в две строчки уложился, о как!&lt;br&gt;ну прикольно же!&lt;br&gt;&lt;br&gt;оно, конечно, может ты и прав, есть и модули для XML&lt;br&gt;хотя и с ними не всё так просто и однозначно,&lt;br&gt;&lt;br&gt;но с другой стороны - с регулярками не надо парится,&lt;br&gt;это как раз на себя и берут эти парсеры (модули)&lt;br&gt;&lt;br&gt;но ТС зажал исходный XML&lt;br&gt;&lt;br&gt;а если мы предоставленные файлы возьмём да и чуть-чуть поправим !?&lt;br&gt;не ну а что? имеет право быть!&lt;br&gt;сам поломал - сам и починил (но это не точно ))))&lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;#!/usr/bin/perl&lt;br&gt;&lt;br&gt;use strict;&lt;br&gt;use warnings;&lt;br&gt;use XML::LibXML;&lt;br&gt;use File::Temp qw(tempfile);&lt;br&gt;&lt;br&gt;&lt;br&gt;my $host = &quot;host&quot;;&lt;br&gt;my $ip   = &quot;ip&quot;;&lt;br&gt;&lt;br&gt;## объявляем массивы для складирования готовой продукции ))&lt;br&gt;my (&#064;hostname, &#064;addr, &#064;short, &#064;proxy, &#064;group, &#037;unic);&lt;br&gt;&lt;br&gt;## вспомогательные массивы&lt;br&gt;my (&#064;f, &#064;f_pre, &#064;f1, &#064;f2);&lt;br&gt;&lt;br&gt;open ( F</description>
</item>

<item>
    <title>разбор двух файлов (михалыч)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/10231.html#12</link>
    <pubDate>Tue, 10 Jul 2018 16:29:23 GMT</pubDate>
    <description>браво, бис!&lt;br&gt;мастер-класс, да и только.&lt;br&gt;</description>
</item>

<item>
    <title>разбор двух файлов (Аноним)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/10231.html#11</link>
    <pubDate>Tue, 10 Jul 2018 15:48:23 GMT</pubDate>
    <description>#!/usr/bin/perl&lt;br&gt;&lt;br&gt;my $hosts = &#123;&#125;;&lt;br&gt;my $ips = &#123;&#125;;&lt;br&gt;&lt;br&gt;for( do&#123; local $/ = &quot;--&quot;; &amp;lt;STDIN&amp;gt; &#125; )&#123;&lt;br&gt;next unless( my( $ip ) = m/&amp;lt;ip&amp;gt;(&#091;^&amp;lt;&#093;+)/ );&lt;br&gt;if(/&amp;lt;group&amp;gt;/)&#123;&lt;br&gt;$ips-&amp;gt;&#123;$ip&#125; = &#123; map &#123; $_ =&amp;gt; 0 &#125; m/&amp;lt;name&amp;gt;(&#091;^&amp;lt;&#093;+)/g &#125; ;&lt;br&gt;next ;&lt;br&gt;&#125;&lt;br&gt;$hosts-&amp;gt;&#123;$ip&#125; = &#091; m/&amp;lt;host&amp;gt;(&#091;^&amp;lt;&#093;+).*&amp;lt;name&amp;gt;(&#091;^&amp;lt;&#093;+)/s &#093;;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;for my $ip ( sort&#123; $hosts-&amp;gt;&#123;$a&#125;-&amp;gt;&#091;0&#093; cmp $hosts-&amp;gt;&#123;$b&#125;-&amp;gt;&#091;0&#093; &#125; keys &#037;$hosts )&#123;&lt;br&gt;my( $short, $long ) = &#064;&#123; $hosts-&amp;gt;&#123;$ip&#125; &#125;;&lt;br&gt;printf qq&amp;#124;hostname: &#037;s&#092;nip: &#037;s&#092;nshort: &#037;s&#092;nproxy: &#037;s&#092;ngroup: &#037;s&#092;n--&#092;n&amp;#124;, &lt;br&gt;$long, $ip, $short, $long, join(&quot;, &quot;, sort keys &#037;&#123; $ips-&amp;gt;&#123;$ip&#125; &#125;);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;&lt;br&gt;Пользоваться&lt;br&gt;cat host ip &amp;#124; perl script.pl&lt;br&gt;</description>
</item>

<item>
    <title>разбор двух файлов (Pahanivo)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/10231.html#10</link>
    <pubDate>Tue, 10 Jul 2018 08:36:35 GMT</pubDate>
    <description>Зачем вуду-магия крестянам, Михалыч? Есть же XML парсеры в перле, если не может осилить то онанизм с регексами вокруг XML - это путь в никуда. &lt;br&gt;</description>
</item>

<item>
    <title>разбор двух файлов (михалыч)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/10231.html#9</link>
    <pubDate>Fri, 06 Jul 2018 13:30:28 GMT</pubDate>
    <description>ну, что же..&lt;br&gt;я ждал, но первозданный XML файл так и не показывают&lt;br&gt;&lt;br&gt;ладно, обойдёмся ))&lt;br&gt;погнали&lt;br&gt;&#091;code&#093;&lt;br&gt;#!/usr/bin/perl&lt;br&gt;&lt;br&gt;use strict;&lt;br&gt;use warnings;&lt;br&gt;&lt;br&gt;&lt;br&gt;my $host = &quot;host&quot;;&lt;br&gt;my $ip   = &quot;ip&quot;;&lt;br&gt;&lt;br&gt;open ( FH1, $host ) or die &quot;couldn&apos;t open $host : $!&quot;;&lt;br&gt;open ( FH2, $ip )   or die &quot;couldn&apos;t open $ip : $!&quot;;&lt;br&gt;&lt;br&gt;&lt;br&gt;my (&#064;hostname, &#064;addr, &#064;short, &#064;proxy, &#064;group, &#037;unic);&lt;br&gt;&lt;br&gt;&#123; local $/ = undef;&lt;br&gt;&lt;br&gt;    while ( &amp;lt;FH1&amp;gt; ) &#123;&lt;br&gt;&lt;br&gt;        &#064;hostname = m&amp;#124;&amp;lt;host&amp;gt;(.*)&amp;lt;/host&amp;gt;&amp;#124;g;&lt;br&gt;        &#064;addr     = m&amp;#124;&amp;lt;ip&amp;gt;(.*)&amp;lt;/ip&amp;gt;&amp;#124;g;&lt;br&gt;        &#064;short    = m&amp;#124;&amp;lt;name&amp;gt;(.*)&amp;lt;/name&amp;gt;&amp;#124;g;&lt;br&gt;        &#064;proxy    = m&amp;#124;&amp;lt;proxy&amp;gt;.*?&amp;gt;(.*?)&amp;lt;/.*?&amp;lt;/proxy&amp;gt;&amp;#124;gs;&lt;br&gt;    &#125;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;my $count = 0;&lt;br&gt;while ( &amp;lt;FH2&amp;gt; ) &#123;&lt;br&gt;&lt;br&gt;    $count++ if /--/;&lt;br&gt;    if (m&amp;#124;&amp;lt;name&amp;gt;(.*)&amp;lt;/name&amp;gt;&amp;#124;) &#123;push &#064;&#123;$group&#091;$count&#093;&#125;, $1 unless $unic&#123;$1&#125;++;&#125;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;close FH1;&lt;br&gt;close FH2;&lt;br&gt;&lt;br&gt;for (my $i=0; $i&amp;lt;&#064;addr; $i++) &#123;&lt;br&gt;&lt;br&gt;    print &quot;--&#092;n&quot;;&lt;br&gt;    print &quot;hostname: $hostname&#091;$i&#093;&#092;n&quot;;&lt;br&gt;    print &quot;ip: $addr&#091;$i&#093;&#092;n&quot;;&lt;br&gt;    print &quot;short: $short&#091;$i&#093;&#092;n&quot;;&lt;br&gt;    print &quot;proxy: $proxy&#091;$i&#093;&#092;n</description>
</item>

<item>
    <title>разбор двух файлов (Pahanivo)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/10231.html#8</link>
    <pubDate>Thu, 05 Jul 2018 06:30:32 GMT</pubDate>
    <description>&amp;gt; в файлах позиции одинаковые тоесть 1 секция в первом файле соответствует 1 &lt;br&gt;&amp;gt; секции во втором.&lt;br&gt;&lt;br&gt;секции, позиции, и т.д. - ну нихера ж не понятно...&lt;br&gt;Михалыч прально сказал - парси исходный XML, а не дергай из него невнятные куски с непонятной корреляцией данных, чтобы потом героически изобретать велосипед, который ты походу еще и не знаешь как устроен.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>разбор двух файлов (михалыч)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/10231.html#7</link>
    <pubDate>Wed, 04 Jul 2018 15:24:54 GMT</pubDate>
    <description>&amp;gt; это парсился xml и из него выбиратось то что нужно.&lt;br&gt;&lt;br&gt;Шта-а-а?? Whiskey Tango Foxtrot ??&lt;br&gt;&lt;br&gt;может лучше сразу из xml парсить правильно и то что нужно?&lt;br&gt;а то парсим, потом ещё раз парсим! WTF!?&lt;br&gt;&lt;br&gt;н-да, однако, вы знаете толк в извращениях )))&lt;br&gt;</description>
</item>

<item>
    <title>разбор двух файлов (Андрей)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/10231.html#6</link>
    <pubDate>Wed, 04 Jul 2018 12:23:59 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt; -- &lt;br&gt;&amp;gt;&amp;gt; hostname: host1.fullname &lt;br&gt;&amp;gt;&amp;gt; ip: 721.0.0.1 &lt;br&gt;&amp;gt;&amp;gt; short: host1.shortname &lt;br&gt;&amp;gt;&amp;gt; proxy: proxy1.fullname &lt;br&gt;&amp;gt;&amp;gt; group: GROUP1 &lt;br&gt;&amp;gt;&amp;gt; есть у кого идеи? может кто делал такое!!&lt;br&gt;&amp;gt;&amp;gt; Спасибо.&lt;br&gt;&amp;gt; я так понимаю что сопоставление сущностей в двух файлах  идет в &lt;br&gt;&amp;gt; порядке их описания в файлах?&lt;br&gt;&lt;br&gt;да&lt;br&gt;&amp;gt; а разделение блоков сущностей происходит символами &quot;--&quot; ?&lt;br&gt;&lt;br&gt;да&lt;br&gt;&amp;gt; ну... складываете содержимое  файл в массив по разделителю &quot;--&quot;, организуете цикл &lt;br&gt;&amp;gt; по массиву, в котором у вас теперь элемент - это сущность, &lt;br&gt;&amp;gt; делаете примитивный парсер тэгов и сопоставляете нужное.&lt;br&gt;&lt;br&gt;этими параметрами указываем на привязку 1 файла ко 2-му!!&lt;br&gt;&amp;lt;name&amp;gt;host1.fullname&amp;lt;/name&amp;gt;&lt;br&gt;--&lt;br&gt;&amp;lt;dns&amp;gt;host1.fullname&amp;lt;/dns&amp;gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>разбор двух файлов (Андрей)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/10231.html#5</link>
    <pubDate>Wed, 04 Jul 2018 12:20:36 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Добрый день.&lt;br&gt;&amp;gt;&amp;gt; имеем 2 файла вида: &lt;br&gt;&amp;gt; за подобный формат файлов нужно бить табуреткой по голове до просветления.&lt;br&gt;&lt;br&gt;это парсился xml и из него выбиратось то что нужно.&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; как выводить мне из двух файлов скриптом следующее &lt;br&gt;&amp;gt;&amp;gt; short: host1.shortname &lt;br&gt;&amp;gt; откуда вообще взялся данный тег?&lt;br&gt;&lt;br&gt;это условное название&lt;br&gt;test.hostname.su (full)&lt;br&gt;test (short)&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; только есть один нюанс, если в файле ip в секции &lt;br&gt;&amp;gt;&amp;gt; &lt;br&gt;&amp;gt;&amp;gt;     &amp;lt;group&amp;gt; &lt;br&gt;&amp;gt;&amp;gt;         &amp;lt;name&amp;gt;GROUP1&amp;lt;/name&amp;gt; &lt;br&gt;&amp;gt;&amp;gt;         &amp;lt;name&amp;gt;GROUP1&amp;lt;/name&amp;gt; &lt;br&gt;&amp;gt;&amp;gt;     &amp;lt;/group&amp;gt; &lt;br&gt;&amp;gt;&amp;gt; GROUP1=GROUP1 то вывод &lt;br&gt;&amp;gt; если у тебя два тега с одинаковыми данными, то да данные этих &lt;br&gt;&amp;gt; тегов одинаковы, что ты хотел сказать?&lt;br&gt;&lt;br&gt;есть такой тег как group в нем от 1 до двух name как ниже&lt;br&gt;&amp;lt;group&amp;gt; &lt;br&gt; &amp;lt;name&amp;gt;GROUP1&amp;lt;/name&amp;gt; &lt;br&gt; &amp;lt;name&amp;gt;GROUP2&amp;lt;/name&amp;gt; &lt;br&gt;&amp;lt;/group&amp;gt; &lt;br&gt;при таком раскладе выводим group : GROUP1, GROUP2, но если в группе&lt;br&gt; &amp;lt;name&amp;gt;GROUP1&amp;lt;/name&amp;gt; &lt;br&gt; &amp;lt;name&amp;gt;GROUP1&amp;lt;/name&amp;gt; &lt;br&gt;оба параметра идентичны то выводим только group: GROUP1&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; есть у кого идеи? может кто делал такое!!&lt;br&gt;&amp;gt; нанять человека ко</description>
</item>

</channel>
</rss>
