<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Поиск массива в массиве</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8867.html</link>
    <description>Значит суть такова. Я забираю по SNMP таблицу мак-адресов в массив с именем &quot;a&quot;. Командой source я забираю содержимой конфиг файла, в котором имеются маки, записанные следущим обраом:&lt;br&gt;mac&#091;0&#093;=&quot;000c.ce5d.16b0&quot;&lt;br&gt;mac&#091;1&#093;=&quot;000e.838e.c407&quot;&lt;br&gt;mac&#091;2&#093;=&quot;000f.f79c.17c0&quot;&lt;br&gt;mac&#091;3&#093;=&quot;0012.7f55.6e61&quot;&lt;br&gt;mac&#091;4&#093;=&quot;0015.c681.6930&quot;&lt;br&gt;mac&#091;5&#093;=&quot;0019.06ab.d12d&quot;&lt;br&gt;mac&#091;6&#093;=&quot;001c.f685.0201&quot;&lt;br&gt;mac&#091;7&#093;=&quot;001f.cad5.57c0&quot;&lt;br&gt;&lt;br&gt;далее я циклом ищу содержимое массива &quot;mac&quot; в массиве &quot;a&quot; :&lt;br&gt;&lt;br&gt;counter=0;&lt;br&gt;## проверяем полученные маки с эталоном через массивы&lt;br&gt;&lt;br&gt;for j in $(seq 0 $(($&#123;#a&#091;&#064;&#093;&#125; - 1)))&lt;br&gt;do&lt;br&gt;for i in $(seq 0 $(($&#123;#mac&#091;&#064;&#093;&#125; - 1)))&lt;br&gt;do&lt;br&gt;if &#091;&#091; &quot;$&#123;mac&#091;$i&#093;&#125;&quot; == &quot;$&#123;a&#091;$j&#093;&#125;&quot; &#093;&#093;&lt;br&gt;then&lt;br&gt;echo &quot;$&#123;a$j&#093;&#125;&quot;&lt;br&gt;&lt;br&gt;fi&lt;br&gt;counter=$((counter+1));&lt;br&gt;done&lt;br&gt;&lt;br&gt;&lt;br&gt;done&lt;br&gt;В этом случае скрипт выводит список совпавших маков и все отлично(вот пример вывода:&lt;br&gt;000c.ce5d.16b0&lt;br&gt;000e.838e.c407&lt;br&gt;000f.f79c.17c0&lt;br&gt;0012.7f55.6e61&lt;br&gt;001c.f685.0201&lt;br&gt;001f.cad5.57c0), но блин, когда вместо == (равно) я пишу != (не равно), то я получаю вывод кошмарный, строчки поторяются по 12 раз и нужный информаци</description>

<item>
    <title>Поиск массива в массиве (Xaionaro)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/8867.html#1</link>
    <pubDate>Thu, 23 Sep 2010 13:45:14 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;вывода: &lt;br&gt;&amp;gt;000c.ce5d.16b0 &lt;br&gt;&amp;gt;000e.838e.c407 &lt;br&gt;&amp;gt;000f.f79c.17c0 &lt;br&gt;&amp;gt;0012.7f55.6e61 &lt;br&gt;&amp;gt;001c.f685.0201 &lt;br&gt;&amp;gt;001f.cad5.57c0), но блин, когда вместо == (равно) я пишу != (не равно), &lt;br&gt;&amp;gt;то я получаю вывод кошмарный, строчки поторяются по 12 раз и &lt;br&gt;&amp;gt;нужный информаци среди них нету, прошу помочь разобраться, сам никак не &lt;br&gt;&amp;gt;пойду где проблема ( Заранее всем огромное спасибо. &lt;br&gt;&lt;br&gt;Ну, во-первых, наверное, не по 12, а по 7-8.&lt;br&gt;Во-вторых, вам нужно оставить &quot;==&quot;, где вы должны будете метить через какую-нибудь переменную (или массив, это уже у кого как мозг повёрнут) что для данного значения есть совпадение. И уже ВНЕ внутреннего цикла проверять значение этой переменной.&lt;br&gt;&lt;br&gt;Вообще, для отладки bash-скриптов удобно использовать флаг &quot;-x&quot;&lt;br&gt;</description>
</item>

</channel>
</rss>
