<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: sed/perl замена символов в найденной построке</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7381.html</link>
    <description>Привет всем.&lt;br&gt;Есть строка вида&lt;br&gt;&amp;lt;a href=&quot;a:b:c:d&quot; ...&lt;br&gt;нужно получить&lt;br&gt;&amp;lt;a href=&quot;a/b/c/d&quot; ...&lt;br&gt;&lt;br&gt;Простая замена в стиле tr не подойдёт,&lt;br&gt;так как вне найденной подстроки&lt;br&gt;менять символы нельзя.&lt;br&gt;&lt;br&gt;Желательно на sed или perl.&lt;br&gt;</description>

<item>
    <title>sed/perl замена символов в найденной построке (devcoder)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7381.html#13</link>
    <pubDate>Mon, 26 May 2008 12:00:18 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Не работает. &lt;br&gt;&amp;gt;&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;</description>
</item>

<item>
    <title>sed/perl замена символов в найденной построке (madskull)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7381.html#12</link>
    <pubDate>Mon, 26 May 2008 11:49:30 GMT</pubDate>
    <description>&amp;gt;Не работает. &lt;br&gt;&lt;br&gt;Странно&lt;br&gt;у меня работает&lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;&#091;arena tmp&#093;$ cat file&lt;br&gt;&amp;lt;a style=&quot;a:b;&quot; href=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;&amp;lt;img style=&quot;a:b;&quot; src=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;&amp;lt;a style=&quot;a:b;&quot; href=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&amp;lt;img style=&quot;a:b;&quot; src=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;&amp;lt;a style=&quot;a:b;&quot; href=&quot;http://a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;&lt;br&gt;&#091;arena tmp&#093;$ perl -wlne &apos;s#( (?:style&amp;#124;src&amp;#124;href)=&quot;(?:http://&amp;#124;ftp://)?)(.+?)(&quot;)#$1.&amp;&#123;sub&#123;($a=$_&#091;0&#093;)=~s,:,/,g;$a&#125;&#125;($2).$3#gei;print&apos; file&lt;br&gt;&amp;lt;a style=&quot;a/b;&quot; href=&quot;a/b/c/d&quot; style=&quot;c/d;&quot;&amp;gt;&lt;br&gt;&amp;lt;img style=&quot;a/b;&quot; src=&quot;a/b/c/d&quot; style=&quot;c/d;&quot;&amp;gt;&lt;br&gt;&amp;lt;a style=&quot;a/b;&quot; href=&quot;a/b/c/d&quot; style=&quot;c/d;&quot;&amp;gt;&amp;lt;img style=&quot;a/b;&quot; src=&quot;a/b/c/d&quot; style=&quot;c/d;&quot;&amp;gt;&lt;br&gt;&amp;lt;a style=&quot;a/b;&quot; href=&quot;http://a/b/c/d&quot; style=&quot;c/d;&quot;&amp;gt;&lt;br&gt;&lt;br&gt;&#091;arena tmp&#093;$&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;Или, может, я что-то не понял?&lt;br&gt;</description>
</item>

<item>
    <title>sed/perl замена символов в найденной построке (devcoder)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7381.html#11</link>
    <pubDate>Mon, 26 May 2008 11:17:01 GMT</pubDate>
    <description>&amp;gt;а что, обязательно однострочник?&lt;br&gt;&lt;br&gt;Необязательно, мой код на awk нормально отрабатывает,&lt;br&gt;просто хотелось ужаснуться восхищёнными глазами :-)&lt;br&gt;&lt;br&gt;&amp;gt; ну вот, жалкая попытка: &lt;br&gt;&amp;gt;perl -wlne &apos;s#( (?:style&amp;#124;src&amp;#124;href)=&quot;(?:http://&amp;#124;ftp://)?)(.+?)(&quot;)#$1.&amp;&#123;sub&#123;($a=$_&#091;0&#093;)=~s,:,/,g;$a&#125;&#125;($2).$3#gei;print&apos; file &lt;br&gt;&lt;br&gt;Не работает.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>sed/perl замена символов в найденной построке (madskull)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7381.html#10</link>
    <pubDate>Mon, 26 May 2008 11:04:39 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;sed -i &apos;&apos; &apos;s/&amp;lt;a href=&quot;a:b:c:d&quot;/&amp;lt;a href=&quot;a&#092;/b&#092;/c&#092;/d&quot;/g&apos; file html &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;тоесть &quot;file.html&quot; &lt;br&gt;&amp;gt;sed -i &apos;&apos; &apos;s/&amp;lt;a href=&quot;a:b:c:d&quot;/&amp;lt;a href=&quot;a&#092;/b&#092;/c&#092;/d&quot;/g&apos; file.html &lt;br&gt;&lt;br&gt;Спасибо, повеселил :)&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>sed/perl замена символов в найденной построке (madskull)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7381.html#9</link>
    <pubDate>Mon, 26 May 2008 11:02:59 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt;Но может суровые бородатые перлачи напишут perl-однострочник :-) &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;&amp;gt;&lt;br&gt;&lt;br&gt;а что, обязательно однострочник? ну вот, жалкая попытка:&lt;br&gt;perl -wlne &apos;s#( (?:style&amp;#124;src&amp;#124;href)=&quot;(?:http://&amp;#124;ftp://)?)(.+?)(&quot;)#$1.&amp;&#123;sub&#123;($a=$_&#091;0&#093;)=~s,:,/,g;$a&#125;&#125;($2).$3#gei;print&apos; file&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>sed/perl замена символов в найденной построке (devcoder)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7381.html#8</link>
    <pubDate>Mon, 26 May 2008 10:20:11 GMT</pubDate>
    <description>&amp;gt;ну так ты сразу пиши чего хочешь. &lt;br&gt;&lt;br&gt;:-) я бы до сих пор комбинации набивал&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;Ниже, то что я родил на awk, работает. &lt;br&gt;&amp;gt;&amp;gt;Но может суровые бородатые перлачи напишут perl-однострочник :-) &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;не знаю может быть и напишут, ты подожди :) &lt;br&gt;&lt;br&gt;Сейчас, сяду поудобнее и начну ждать :)&lt;br&gt;&lt;br&gt;&amp;gt;а если менять везде по твоим примерам, да еще учитывая тот код &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;... href=&quot;http://a:b:c:d&quot; ...&lt;br&gt;... href=&quot;http://a:b:c&quot; ...&lt;br&gt;... href=&quot;http://a:b&quot; ...&lt;br&gt;... href=&quot;http://a&quot; ...&lt;br&gt;&#091;/code&#093;&lt;br&gt;;-)&lt;br&gt;</description>
</item>

<item>
    <title>sed/perl замена символов в найденной построке (NuINu)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7381.html#7</link>
    <pubDate>Mon, 26 May 2008 10:13:13 GMT</pubDate>
    <description>&amp;gt;Это было бы легко, но строки могут быть такие: &lt;br&gt;&amp;gt;&#091;code&#093; &lt;br&gt;&amp;gt;&amp;lt;a style=&quot;a:b;&quot; href=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;&amp;gt;&amp;lt;img style=&quot;a:b;&quot; src=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;&amp;gt;&amp;lt;a style=&quot;a:b;&quot; href=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&amp;lt;img style=&quot;a:b;&quot; src=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;&amp;gt;&amp;lt;a style=&quot;a:b;&quot; href=&quot;http://a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;&amp;gt;... &lt;br&gt;&amp;gt;&#091;/code&#093; &lt;br&gt;&lt;br&gt;ну так ты сразу пиши чего хочешь.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Ниже, то что я родил на awk, работает. &lt;br&gt;&amp;gt;Но может суровые бородатые перлачи напишут perl-однострочник :-) &lt;br&gt;&lt;br&gt;не знаю может быть и напишут, ты подожди :)&lt;br&gt;а если менять везде по твоим примерам, да еще учитывая тот код что ты привел.&lt;br&gt;можно попробовать сделать так:&lt;br&gt;&lt;br&gt;my $in;&lt;br&gt;my $out;&lt;br&gt;&lt;br&gt;my $in_symb = &apos;&#091;^:&quot;&#093;&apos;;&lt;br&gt;my $del = &apos;/&apos;;&lt;br&gt;my $shablon = &quot;(href&amp;#124;src)=&#092;&quot;(((?imsx-imsx:http&amp;#124;ftp&amp;#124;https)://)*)($in_symb+):($in_symb+):($in_symb+):($in_symb+)&#092;&quot;&quot;;&lt;br&gt;&lt;br&gt;while ($in = &amp;lt;&amp;gt;) &#123;&lt;br&gt;    ($out = $in) =~ s/$shablon/$1=&quot;$2$4$del$5$del$6$del$7&quot;/gi;&lt;br&gt;    print(&quot;input&#092;t: &apos;$in&apos;&#092;n&quot;);&lt;br&gt;    print(&quot;parsed&#092;t: &apos;$out&apos;&#092;n&quot;);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;а уж однострочник ты сам делай. ну и поиск пробе</description>
</item>

<item>
    <title>sed/perl замена символов в найденной построке (devcoder)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7381.html#6</link>
    <pubDate>Mon, 26 May 2008 07:42:57 GMT</pubDate>
    <description>Это было бы легко, но строки могут быть такие:&lt;br&gt;&#091;code&#093;&lt;br&gt;&amp;lt;a style=&quot;a:b;&quot; href=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;&amp;lt;img style=&quot;a:b;&quot; src=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;&amp;lt;a style=&quot;a:b;&quot; href=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&amp;lt;img style=&quot;a:b;&quot; src=&quot;a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;&amp;lt;a style=&quot;a:b;&quot; href=&quot;http://a:b:c:d&quot; style=&quot;c:d;&quot;&amp;gt;&lt;br&gt;...&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;Ниже, то что я родил на awk, работает.&lt;br&gt;Но может суровые бородатые перлачи напишут perl-однострочник :-)&lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;function tr_href()&lt;br&gt;&#123;&lt;br&gt;     awk &apos;&#123; IGNORECASE=1&lt;br&gt;         r = &quot;(href&amp;#124;src)&#091;&#091;:space:&#093;&#093;*=&#091;&#091;:space:&#093;&#093;*&#092;&quot;(&#091;^&#092;&quot;&#093;+)&#092;&quot;&#091;^&amp;gt;&#093;*&amp;gt;&quot;;&lt;br&gt;         line = $0&lt;br&gt;         while ( 0 &amp;lt; match(line, r, a) ) &#123;&lt;br&gt;            last_line = substr(line, RSTART + RLENGTH);&lt;br&gt;            # print &quot;last line: &quot;, last_line;&lt;br&gt;            if ( a&#091;2&#093; != &quot;&quot; ) &#123;&lt;br&gt;               before_s = substr(line, 0, a&#091;2,&quot;start&quot;&#093;-1);&lt;br&gt;               after_s  = substr(line, a&#091;2,&quot;start&quot;&#093; + a&#091;2,&quot;length&quot;&#093;, RSTART + RLENGTH - a&#091;2,&quot;start&quot;&#093; - a&#091;2,&quot;length&quot;&#093; )&lt;br&gt;               # print &quot;after_s: &quot;, after_s;&lt;br&gt;            &lt;br&gt;               proto = &quot;&quot;;&lt;br&gt;     </description>
</item>

<item>
    <title>sed/perl замена символов в найденной построке (NuINu)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/7381.html#5</link>
    <pubDate>Mon, 26 May 2008 07:27:30 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;Есть строка вида &lt;br&gt;&amp;gt;&amp;lt;a href=&quot;a:b:c:d&quot; ... &lt;br&gt;&amp;gt;нужно получить &lt;br&gt;&amp;gt;&amp;lt;a href=&quot;a/b/c/d&quot; ... &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Простая замена в стиле tr не подойдёт, &lt;br&gt;&amp;gt;так как вне найденной подстроки &lt;br&gt;&amp;gt;менять символы нельзя. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Желательно на sed или perl. &lt;br&gt;&lt;br&gt;#!/usr/bin/perl -w&lt;br&gt;&lt;br&gt;use strict;&lt;br&gt;&lt;br&gt;#просто раскоментируй ввод, и закоментируй тест&lt;br&gt;#my $in = &amp;lt;&amp;gt;;&lt;br&gt;my $in = &quot;&amp;lt;a href=&#092;&quot;4f23a:342b:342c:3e32d&#092;&quot; ...&quot;;&lt;br&gt;my $out;&lt;br&gt;&lt;br&gt;my $in_symb = &apos;&#091;^:&quot;&#093;&apos;;&lt;br&gt;my $del = &apos;/&apos;;&lt;br&gt;my $shablon = &quot;&amp;lt;a href=&#092;&quot;($in_symb+):($in_symb+):($in_symb+):($in_symb+)&#092;&quot;(.*)&quot;;&lt;br&gt;($out = $in) =~ s/$shablon/&amp;lt;a href=&quot;$1$del$2$del$3$del$4&quot;$5/ig;&lt;br&gt;&lt;br&gt;print(&quot;input&#092;t: &apos;$in&apos;&#092;n&quot;);&lt;br&gt;print(&quot;parsed&#092;t: &apos;$out&apos;&#092;n&quot;);&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
