<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Вопрос по sed</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7665.html</link>
    <description>Как с помощью sed заменить первую строку, совпадающую с паттерном, последней, совпадающей с паттерном? И наоборот.&lt;br&gt;&lt;br&gt;Т.е., есть например, файл:&lt;br&gt;&lt;br&gt;...&lt;br&gt;some_var=&quot;foo&quot;&lt;br&gt;...&lt;br&gt;some_var=&quot;bar&quot;&lt;br&gt;...&lt;br&gt;&lt;br&gt;Паттерн для строки /^some_var=/. Нужно, понятно, заменить в первом случае foo на bar, во втором - наоборот.&lt;br&gt;</description>

<item>
    <title>Вопрос по sed (Keeper)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7665.html#10</link>
    <pubDate>Sun, 26 Oct 2008 09:47:46 GMT</pubDate>
    <description>Только если использовать grep для вычисления номеров нужных строк, и shell, для последующей подстановки вычисленных номеров строк в команды sed.&lt;br&gt;</description>
</item>

<item>
    <title>Вопрос по sed (Slim)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7665.html#9</link>
    <pubDate>Fri, 24 Oct 2008 15:10:54 GMT</pubDate>
    <description>Не знаю, что такое REINPLACE_CMD, но имхо sed тут не в тему. Заменить первым матчем все последующие можно, используя hold buffer - синтаксиса уже не помню, тут есть хорошая дока: http://www.grymoire.com/Unix/Sed.html. Но выделить последний матч и заменить только его, а тем более заменить им все предедущие, ИМХО нельзя. Все-таки _stream_ editor.&lt;br&gt;</description>
</item>

<item>
    <title>Препод сказал на sed-е, значит на сед-е (Аноним)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7665.html#4</link>
    <pubDate>Fri, 24 Oct 2008 10:22:36 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Как с помощью sed заменить первую строку, совпадающую с паттерном, последней, совпадающей &lt;br&gt;&amp;gt;&amp;gt;с паттерном? И наоборот. &lt;br&gt;&amp;gt;Преподы просто озверели!! &#037;-)) Поди без шела и textutils?! &lt;br&gt;&lt;br&gt;Да вообще ужас. Иди вон в тему &quot;Как связать v-480 и storedge 3320 (Аппаратура, Железо/Solaris)&quot; в &quot;виртуальной конференции&quot; и там еще про преподов спроси...&lt;br&gt;</description>
</item>

<item>
    <title>Вопрос по sed (Аноним)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7665.html#3</link>
    <pubDate>Fri, 24 Oct 2008 10:20:34 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Паттерн для строки /^some_var=/. Нужно, понятно, заменить в первом случае foo на &lt;br&gt;&amp;gt;&amp;gt;bar, во втором - наоборот. &lt;br&gt;&lt;br&gt;В смысле, нужно не поменять местами, а заменить либо последний матч на первый, либо наоборот.&lt;br&gt;&lt;br&gt;&amp;gt;Я бы, скорее на awk сделал, потому что на sed, может и &lt;br&gt;&amp;gt;можно, но как-то сходу не придумывается.&lt;br&gt;&lt;br&gt;Мне нужно именно на sed, для $&#123;REINPLACE_CMD&#125; во FreeBSD&apos;шном порте. Патч не подходит, работать нужно с динамически сгенеренным файлом. Если гуру sed ничего не подскажут, я лучше несколькими командами сделаю, это хотя бы можно будет прочитать.&lt;br&gt;</description>
</item>

<item>
    <title>Препод сказал на sed-е, значит на сед-е (Andrey Mitrofanov)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7665.html#2</link>
    <pubDate>Fri, 24 Oct 2008 07:09:50 GMT</pubDate>
    <description>&amp;gt;Как с помощью sed заменить первую строку, совпадающую с паттерном, последней, совпадающей &lt;br&gt;&amp;gt;с паттерном? И наоборот. &lt;br&gt;&lt;br&gt;Преподы просто озверели!! &#037;-)) Поди без шела и textutils?!&lt;br&gt;&lt;br&gt;&amp;gt;Паттерн для строки /^some_var=/.</description>
</item>

<item>
    <title>Вопрос по sed (phpcoder)</title>
    <link>https://opennet.me/openforum/vsluhforumID9/7665.html#1</link>
    <pubDate>Fri, 24 Oct 2008 05:55:50 GMT</pubDate>
    <description>&#091;...&#093;&lt;br&gt;&amp;gt;Паттерн для строки /^some_var=/. Нужно, понятно, заменить в первом случае foo на &lt;br&gt;&amp;gt;bar, во втором - наоборот. &lt;br&gt;&lt;br&gt;Я бы, скорее на awk сделал, потому что на sed, может и можно, но как-то сходу не придумывается. А на awk, вот:&lt;br&gt;&lt;br&gt;&#091;c0der&#064;rock ~&#093;$ cat test.txt&lt;br&gt;some_var=&quot;foo&quot;&lt;br&gt;some_var=&quot;test&quot;&lt;br&gt;some_var=&quot;bar&quot;&lt;br&gt;&#091;c0der&#064;rock ~&#093;$ awk &apos;BEGIN&#123;first=0;last=0&#125;&#123;arr&#091;NR&#093;=$0;if(/^some_var=/)&#123;if(first==0)&#123;first=NR&#125;;last=NR&#125;&#125;END&#123;for(i=1; i&amp;lt;=length(arr);i++)&#123;if(first==i&amp;&amp;first!=last)&#123;print arr&#091;last&#093;&#125;else&#123;if(last==i&amp;&amp;first!=last)&#123;print arr&#091;first&#093;&#125;else&#123;print arr&#091;i&#093;&#125;&#125;&#125;&#125;&apos; test.txt&lt;br&gt;some_var=&quot;bar&quot;&lt;br&gt;some_var=&quot;test&quot;&lt;br&gt;some_var=&quot;foo&quot;&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
