<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Транспонирование текста с учетом разделителя (sed, awk, ..)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9859.html</link>
    <description>Здравствуйте.&lt;br&gt;Подскажите.&lt;br&gt;&lt;br&gt;Например, есть текст примерно такого содержания:&lt;br&gt;&lt;br&gt;------------------------&lt;br&gt;TABEL_ID;25235&lt;br&gt;CUSTOM_ID;3456436&lt;br&gt;PERSSEX;M&lt;br&gt;LASTNAME;Петров&lt;br&gt;FIRSTNAME;Василий&lt;br&gt;MIDDLENAME;Андреевич&lt;br&gt;TITLE;Руководитель&lt;br&gt;CONTACT_UNID;34636474575468586&lt;br&gt;PHONE_MOBILE;+456457567&lt;br&gt;EMAIL;petro&#064;mail.ru&lt;br&gt;^&lt;br&gt;TABEL_ID;534636&lt;br&gt;CUSTOM_ID;4363467347&lt;br&gt;PERSSEX;M&lt;br&gt;LASTNAME;Васильев&lt;br&gt;FIRSTNAME;Игорь&lt;br&gt;MIDDLENAME;Петрович&lt;br&gt;TITLE;Менеджер&lt;br&gt;CONTACT_UNID;457677567658&lt;br&gt;PHONE_MOBILE;+456457567&lt;br&gt;EMAIL;vasya&#064;mail.ru&lt;br&gt;^&lt;br&gt;--------------------------&lt;br&gt;&lt;br&gt;Как в sed или аналогичной программе по разделителю ^ и ; транспонировать текст так, чтобы на выходе было:&lt;br&gt;&lt;br&gt;TABEL_ID;CUSTOM_ID;PERSSEX;LASTNAME;FIRSTNAME;MIDDLENAME;TITLE;CONTACT_UNID;PHONE_MOBILE;EMAIL&lt;br&gt;25235;3456436;M;Петров;Василий;Андреевич;Руководитель;34636474575468500;456457567;petro&#064;mail.ru&lt;br&gt;TABEL_ID;CUSTOM_ID;PERSSEX;LASTNAME;FIRSTNAME;MIDDLENAME;TITLE;CONTACT_UNID;PHONE_MOBILE;EMAIL&lt;br&gt;534636;4363467347;M;Васильев;Игорь;Петрович;Менеджер;457677567658;456457567;vasya&#064;ma</description>

<item>
    <title>Транспонирование текста с учетом разделителя (sed, awk, ..) (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9859.html#12</link>
    <pubDate>Tue, 27 May 2014 15:40:02 GMT</pubDate>
    <description>&amp;gt;&amp;gt; # apt-get install sc &lt;br&gt;&amp;gt; Таблицы?? &lt;br&gt;&lt;br&gt;Можна массивы, с выборкой по модулю  &lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Транспонирование текста с учетом разделителя (sed, awk, ..) (Andrey Mitrofanov)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9859.html#11</link>
    <pubDate>Tue, 27 May 2014 07:32:11 GMT</pubDate>
    <description>&amp;gt; а я сразу сказал - надо звать мастера, он сделает красиво &lt;br&gt;&lt;br&gt;После 25 строк #!/usr/bin/perl -- это не сразу. Честно, только сейчас схидил и прочитал.&lt;br&gt;&lt;br&gt;Впрочем, эти самые 25 строк, ставшие ниже 15-ью, &quot;позвали в дорогу&quot; :D не хуже.&lt;br&gt;</description>
</item>

<item>
    <title>Транспонирование текста с учетом разделителя (sed, awk, ..) (михалыч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9859.html#10</link>
    <pubDate>Tue, 27 May 2014 03:33:44 GMT</pubDate>
    <description>а подмету-ка я, пожалуй, мусор, в своём перловом скрипте, а то как-то неприлично даже ))&lt;br&gt;&#091;code&#093;#!/usr/bin/perl&lt;br&gt;&lt;br&gt;$text = shift &#064;ARGV;&lt;br&gt;&lt;br&gt;open FH, $text or die &quot;can&apos;t open $text: $!&#092;n&quot;;&lt;br&gt;while (&amp;lt;FH&amp;gt;) &#123;&lt;br&gt;    chomp;&lt;br&gt;    if (/&#092;^$/) &#123;$i++; next;&#125;&lt;br&gt;    split &quot;;&quot;;&lt;br&gt;    push &#064;&#123;$name&#091;$i&#093;&#125;, $_&#091;0&#093;;&lt;br&gt;    push &#064;&#123;$data&#091;$i&#093;&#125;, $_&#091;1&#093;;&lt;br&gt;&#125;&lt;br&gt;close FH;&lt;br&gt;&lt;br&gt;for ($j=0; $j&amp;lt;&#064;name; $j++) &#123;&lt;br&gt;    print join (&quot;;&quot;, &#064;&#123;$name&#091;$j&#093;&#125;), &quot;&#092;n&quot;;&lt;br&gt;    print join (&quot;;&quot;, &#064;&#123;$data&#091;$j&#093;&#125;), &quot;&#092;n&quot;;&lt;br&gt;&#125;&#091;/code&#093;&lt;br&gt;это, конечно, не так изящно, но лучше, чем было )&lt;br&gt;</description>
</item>

<item>
    <title>Транспонирование текста с учетом разделителя (sed, awk, ..) (михалыч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9859.html#9</link>
    <pubDate>Tue, 27 May 2014 01:36:03 GMT</pubDate>
    <description>ахренеть, шикарно.. ))&lt;br&gt;а я сразу сказал - надо звать мастера, он сделает красиво&lt;br&gt;</description>
</item>

<item>
    <title>Транспонирование текста с учетом разделителя (sed, awk, ..) (Andrey Mitrofanov)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9859.html#8</link>
    <pubDate>Mon, 26 May 2014 08:33:47 GMT</pubDate>
    <description>&amp;gt; # apt-get install sc &lt;br&gt;&lt;br&gt;Таблицы?? http://thelinuxrain.com/articles/a-pivot-table-in-awk Кто &#037;) сказал &quot;Таблицы&quot;??!&lt;br&gt;</description>
</item>

<item>
    <title>Транспонирование текста с учетом разделителя (sed, awk, ..) (Andrey Mitrofanov)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9859.html#7</link>
    <pubDate>Sun, 25 May 2014 08:18:05 GMT</pubDate>
    <description>Не ждали? :*D&lt;br&gt;&lt;br&gt;&amp;gt; cat text &amp;#124; grep -v &apos;&#092;^&apos; &amp;#124; awk -F &quot;;&quot; &apos;&#123;ORS=&quot;;&quot;&#125; /EMAIL/ &lt;br&gt;&lt;br&gt;Эх, молодёж-ж-жь!&lt;br&gt;Тема gawk/Multiple-Line.html не раскрыта.&lt;br&gt;&lt;br&gt;$ &amp;lt;text gawk -F&apos;&#092;n&apos; -v RS=^ &apos;&#123;a=b=&quot;&quot;;for(i=1;i&amp;lt;=NF;i++)&#123;if(split($i,aa,&quot;;&quot;)&amp;gt;1)&#123;a=(a?a&quot;;&quot;:&quot;&quot;)&quot;&quot;aa&#091;1&#093;;b=(b?b&quot;;&quot;:&quot;&quot;)&quot;&quot;aa&#091;2&#093;&#125;&#125;if(a&quot;&quot;b)&#123;print a;print b&#125;&#125;&apos;&lt;br&gt;TABEL_ID;CUSTOM_ID;PERSSEX;LASTNAME;FIRSTNAME;MIDDLENAME;TITLE;CONTACT_UNID;PHONE_MOBILE;EMAIL&lt;br&gt;25235;3456436;M;Петров;Василий;Андреевич;Руководитель;34636474575468586;+456457567;petro&#064;mail.ru&lt;br&gt;TABEL_ID;CUSTOM_ID;PERSSEX;LASTNAME;FIRSTNAME;MIDDLENAME;TITLE;CONTACT_UNID;PHONE_MOBILE;EMAIL&lt;br&gt;534636;4363467347;M;Васильев;Игорь;Петрович;Менеджер;457677567658;+456457567;vasya&#064;mail.ru&lt;br&gt;$ _&lt;br&gt;</description>
</item>

<item>
    <title>Транспонирование текста с учетом разделителя (sed, awk, ..) (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9859.html#6</link>
    <pubDate>Sat, 24 May 2014 15:25:15 GMT</pubDate>
    <description>&amp;gt; Здравствуйте.&lt;br&gt;&amp;gt; Подскажите.&lt;br&gt;&lt;br&gt;# apt-get install sc&lt;br&gt;# psc -r &amp;lt; TEXT.txt &amp;#124; sc -W&#037; - &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Транспонирование текста с учетом разделителя (sed, awk, ..) (михалыч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9859.html#5</link>
    <pubDate>Sun, 11 May 2014 23:58:40 GMT</pubDate>
    <description>&amp;gt; Спасибо большое за помощь.&lt;br&gt;&amp;gt; Попробую разобраться в предложенных скриптах. Опыта пока мало, надеюсь, осилю.&lt;br&gt;&lt;br&gt;вот так будет правильнее, меняет чёт/нечёт местами&lt;br&gt;&lt;br&gt;cat text &amp;#124; grep -v &apos;&#092;^&apos; &amp;#124; awk -F &quot;;&quot; &apos;&#123;ORS=&quot;;&quot;&#125; /EMAIL/ &#123;ORS=&quot;&#092;nTABEL_ID;CUSTOM_ID;PERSSEX;LASTNAME;FIRSTNAME;MIDDLENAME;TITLE;CONTACT_UNID;PHONE_MOBILE;EMAIL&#092;n&quot;&#125; &#123;print $2&#125;&apos; &amp;#124; awk &apos;NR&#037;2==0 &#123;print $0; print p&#125; &#123;p=$0&#125;&apos;&lt;br&gt;&lt;br&gt;в предыдущем варианте был просто реверси строк&lt;br&gt;&lt;br&gt;если хочешь что-то сделать - сделай это сам,&lt;br&gt;если хочешь что-то сделать хорошо - сделай это сам хорошо )) &lt;br&gt;</description>
</item>

<item>
    <title>Транспонирование текста с учетом разделителя (sed, awk, ..) (Андрей)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9859.html#4</link>
    <pubDate>Sun, 11 May 2014 17:11:04 GMT</pubDate>
    <description>Спасибо большое за помощь.&lt;br&gt;Попробую разобраться в предложенных скриптах. Опыта пока мало, надеюсь, осилю.&lt;br&gt;</description>
</item>

</channel>
</rss>
