<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Поиск и замена текста во всех txt, всего каталога.</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9825.html</link>
    <description>Здравствуйте старожилы, очень сильно нуждаюсь в Bash скрипте. Данный скрипт должен найти определённую строку во всех &#091;b&#093;.txt&#091;/b&#093; файлах, всех каталогов и подкаталогов (то есть полностью во всех папках). И заменить ее на мной указанную.&lt;br&gt;&lt;br&gt;&#091;u&#093;В моем случае поиск будет происходить по пути:&#091;/u&#093; &#091;b&#093;/volume1/test&#091;/b&#093;&lt;br&gt;&#091;u&#093;Заменить нужно&#091;/u&#093; &#091;b&#093;192.168.1.56&#091;/b&#093; на &#091;b&#093;192.168.178.111&#091;/b&#093;&lt;br&gt;&lt;br&gt;Применение данного скрипта помогло частично:&lt;br&gt;&lt;br&gt;&#091;code&#093;#!/bin/sh&lt;br&gt;for i in &#096;find &quot;/volume1/test&quot; -depth -name &quot;*.txt&quot; -exec grep -H &quot;192.168.1.56&quot; &#123;&#125; &#092;; &amp;#124; awk -F  &quot;:&quot; &apos;&#123;print $1&#125;&apos; &amp;#124; xargs&#096;;&lt;br&gt;do sed -i &apos;s/192.168.1.56/192.168.178.111/g&apos; $i;&lt;br&gt;done&#091;/code&#093;&lt;br&gt;&lt;br&gt;возможно в силу специфики аппарата для которого пишется данный скрипт.&lt;br&gt;&#091;u&#093;Аппарат:&#091;/u&#093; &#091;b&#093;Synology DS1813+&#091;/b&#093;&lt;br&gt;Не происходит полный поиск и замена во всех подкаталогах и во всех txt файлах. Хотя скрипт запускается от root. &lt;br&gt;&lt;br&gt;Для того чтобы видеть картину целяком прикрепляю результаты теста скрипта написанного выше:&lt;br&gt;&lt;br&gt;Сформировал подробный отчет в виде изображения ни</description>

<item>
    <title>Поиск и замена текста во всех txt, всего каталога. (xaleks)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9825.html#14</link>
    <pubDate>Wed, 14 Jan 2015 09:48:43 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Текстовый файл в итоге должен иметь вид вроде следующего &lt;br&gt;&amp;gt; Ну - вам надо, вы и думайте, как этого добиться.&lt;br&gt;&amp;gt; А то сначала спрашиваете как в IP-адресе заменить точки на тире, а &lt;br&gt;&amp;gt; потом недовольны, потому что у вас целая структура файла, видите ли, &lt;br&gt;&amp;gt; требует генерации.&lt;br&gt;&lt;br&gt;В любом случае, спасибо за помощь!&lt;br&gt;</description>
</item>

<item>
    <title>Поиск и замена текста во всех txt, всего каталога. (DeadLoco)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9825.html#13</link>
    <pubDate>Wed, 14 Jan 2015 09:45:36 GMT</pubDate>
    <description>&amp;gt; Текстовый файл в итоге должен иметь вид вроде следующего&lt;br&gt;&lt;br&gt;Ну - вам надо, вы и думайте, как этого добиться. &lt;br&gt;&lt;br&gt;А то сначала спрашиваете как в IP-адресе заменить точки на тире, а потом недовольны, потому что у вас целая структура файла, видите ли, требует генерации. &lt;br&gt;</description>
</item>

<item>
    <title>Поиск и замена текста во всех txt, всего каталога. (xaleks)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9825.html#12</link>
    <pubDate>Wed, 14 Jan 2015 08:48:29 GMT</pubDate>
    <description>&amp;gt; IPADDR=$(ip -o -f inet addr show eth0 &amp;#124; sed -n &apos;s/^.&#092;+inet &#092;(.&#092;+&#092;)&#092;/.&#092;+$/&#092;1/gp&apos; &lt;br&gt;&amp;gt; &amp;#124; tr &quot;.&quot; &quot;-&quot; ) &lt;br&gt;&lt;br&gt;Спасибо, но это решение не совсем подходит.&lt;br&gt;Текстовый файл в итоге должен иметь вид вроде следующего:&lt;br&gt;&lt;br&gt;ip=192.168.1.1&lt;br&gt;mask=255.255.255.0&lt;br&gt;domain=192-168-1-1-mydomain.net&lt;br&gt;&lt;br&gt;А при таком решении &quot;-&quot; подставится во всех случаях&lt;br&gt;</description>
</item>

<item>
    <title>Поиск и замена текста во всех txt, всего каталога. (DeadLoco)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9825.html#11</link>
    <pubDate>Wed, 14 Jan 2015 08:30:37 GMT</pubDate>
    <description>IPADDR=$(ip -o -f inet addr show eth0 &amp;#124; sed -n &apos;s/^.&#092;+inet &#092;(.&#092;+&#092;)&#092;/.&#092;+$/&#092;1/gp&apos; &amp;#124; tr &quot;.&quot; &quot;-&quot; )&lt;br&gt;</description>
</item>

<item>
    <title>Поиск и замена текста во всех txt, всего каталога. (xaleks)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9825.html#10</link>
    <pubDate>Tue, 13 Jan 2015 15:06:28 GMT</pubDate>
    <description>Здравствуйте!&lt;br&gt;Есть вопрос по аналогичной задаче:&lt;br&gt;Имеется скрипт&lt;br&gt;&lt;br&gt;IPADDR=$(ip -o -f inet addr show eth0 &amp;#124; sed -n &apos;s/^.&#092;+inet &#092;(.&#092;+&#092;)&#092;/.&#092;+$/&#092;1/gp&apos;)&lt;br&gt;if &#091; &quot;x$&#123;IPADDR&#125;&quot; != &quot;x&quot; &#093;; then&lt;br&gt;        for F in &#096;grep -r -l &apos;IP&#092;.ADDRESS&#092;.TO&#092;.CHANGE&apos; /file.txt&#096;; do&lt;br&gt;                sed -i &apos;s/IP&#092;.ADDRESS&#092;.TO&#092;.CHANGE/&apos;$&#123;IPADDR&#125;&apos;/g&apos; $F;&lt;br&gt;        done&lt;br&gt;fi&lt;br&gt;&lt;br&gt;Скрипт вполне себе рабочий и свою функцию выполняет, но появилась необходимость вставлять ip в виде 192-168-1-1 (т.е. не через точки, а тире, а в переменную $IPADDR попадает в виде 192.168.1.1).&lt;br&gt;Подайте идею, как это сделать.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Поиск и замена текста во всех txt, всего каталога. (Ager)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9825.html#9</link>
    <pubDate>Wed, 05 Feb 2014 09:14:12 GMT</pubDate>
    <description>&amp;gt; Угу, с кавычками прошло. Правда запустило 1600+ процессов. Полагаешь, это вообще стоило &lt;br&gt;&amp;gt; рассматривать, как вариант?&lt;br&gt;&lt;br&gt;Имхо, для _одноразового_ решения подойдёт любой костыль.&lt;br&gt;Это не тот случай, когда лучше &quot;два часа потренироваться и потом за пять минут долететь&quot;&lt;br&gt;</description>
</item>

<item>
    <title>Поиск и замена текста во всех txt, всего каталога. (ACCA)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9825.html#8</link>
    <pubDate>Tue, 04 Feb 2014 21:18:47 GMT</pubDate>
    <description>&amp;gt; Вы, несомненно, умный. Очень умный. И очень быстрый. Только не внимательный. _СОВСЕМ_ &lt;br&gt;&amp;gt; невнимательный.&lt;br&gt;&amp;gt; Если присмотреться, то в варианте топик-стартёра &lt;br&gt;&amp;gt; &#091;code&#093; &lt;br&gt;&amp;gt;  ...   sed -i &apos;s/192&#092;.168&#092;.1&#092;.56/192&#092;.168&#092;.178&#092;.111/g&apos; &#091;b&#093;&quot;&#123;&#125;&quot;&#091;/b&#093; &#092;; &lt;br&gt;&amp;gt; &#091;/code&#093; &lt;br&gt;&lt;br&gt;Угу, с кавычками прошло. Правда запустило 1600+ процессов. Полагаешь, это вообще стоило рассматривать, как вариант?&lt;br&gt;</description>
</item>

<item>
    <title>Поиск и замена текста во всех txt, всего каталога. (Ager)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9825.html#7</link>
    <pubDate>Tue, 04 Feb 2014 08:32:41 GMT</pubDate>
    <description>&amp;gt; Что только не придумают, чтобы man sed и man find не читать. &lt;br&gt;&amp;gt; Иногда усердие превозмогает разум.&lt;br&gt;&amp;gt; Тебе повезло, что не попалось ни одного пробела в именах файлов/каталогов.&lt;br&gt;&lt;br&gt;Вы, несомненно, умный. Очень умный. И очень быстрый. Только не внимательный. _СОВСЕМ_ невнимательный.&lt;br&gt;Если присмотреться, то в варианте топик-стартёра&lt;br&gt;&#091;code&#093;&lt;br&gt; ...   sed -i &apos;s/192&#092;.168&#092;.1&#092;.56/192&#092;.168&#092;.178&#092;.111/g&apos; &#091;b&#093;&quot;&#123;&#125;&quot;&#091;/b&#093; &#092;;&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Поиск и замена текста во всех txt, всего каталога. (dydaevskiy)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9825.html#6</link>
    <pubDate>Tue, 04 Feb 2014 05:08:12 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; find  /volume1/test -type f -name &quot;*.txt&quot; -print0 &amp;#124; xargs -0 sed &lt;br&gt;&amp;gt; -i &apos;s/192&#092;.168&#092;.1&#092;.56/192&#092;.168&#092;.178&#092;.111/g&apos; &lt;br&gt;&amp;gt; &#091;/code&#093; &lt;br&gt;&amp;gt;&amp;gt; Скрипт полноценно работает. После работы скрипта, скрупулёзно проверил 1681 txt файл &lt;br&gt;&amp;gt; Иногда усердие превозмогает разум.&lt;br&gt;&amp;gt; &#091;code&#093; &lt;br&gt;&amp;gt; find  /volume1/test -type f -name &quot;*.txt&quot; -print0 &amp;#124; xargs -0 grep &lt;br&gt;&amp;gt; &apos;192&#092;.168&#092;.1&#092;.56&apos; &lt;br&gt;&amp;gt; &#091;/code&#093; &lt;br&gt;&amp;gt; Тебе повезло, что не попалось ни одного пробела в именах файлов/каталогов.&lt;br&gt;&lt;br&gt;Странно но в именах каталогов пробелов уйма. Но поиск и замена произошли идеально.&lt;br&gt;&lt;br&gt;ПС.&quot;Иногда усердие превозмогает разум.&quot;-Цитата дня, спасибо.)&lt;br&gt;</description>
</item>

</channel>
</rss>
