<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Разбить строку на символы</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9277.html</link>
    <description>Надо чтобы любая строка посимвольно представлялась в виде элементов массива.&lt;br&gt;С awk недостаточно хорошо общался, но думаю, юзать надо его. Примерно так:&lt;br&gt;Пусть строка в файле имеет вид 123qwe_!**()skhf___&lt;br&gt;тогда &lt;br&gt;awk &apos;/.*/&apos; file&lt;br&gt;найдет любые символы. Вопрос - как записать каждый из них в отдельную переменную, да еще и при выходе из awk, который находится внутри shell-скрипта (это же получается subshell), не потерять эти переменные?&lt;br&gt;</description>

<item>
    <title>Разбить строку на символы (LSTemp)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9277.html#13</link>
    <pubDate>Sat, 26 Nov 2011 10:23:00 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt; shell-скрипта (это же получается subshell), не потерять эти переменные?&lt;br&gt;&amp;gt; Можно примерно так &lt;br&gt;&amp;gt; str=&apos;123qwe_!**()skhf___&apos; &lt;br&gt;&amp;gt; while &#091; -n &quot;$str&quot; &#093;; do &lt;br&gt;&amp;gt;   temp=$&#123;str#?&#125;  # все кроме первого символа &lt;br&gt;&amp;gt;   char=$&#123;str&#037;&quot;$temp&quot;&#125;  # удаляем все, оставляя только первый символ &lt;br&gt;&amp;gt;   echo &quot;$char&quot;  # обрабатываем символ как надо, например помещаем &lt;br&gt;&amp;gt; в массив &lt;br&gt;&amp;gt;   str=$temp  # восстанавливаем строку, но уже без первого символа &lt;br&gt;&amp;gt; done &lt;br&gt;&lt;br&gt;&#091;root&#064;local 222&#093;# cat ./sss&lt;br&gt;#!/bin/bash&lt;br&gt;&lt;br&gt;str=&quot;abcdef&quot;&lt;br&gt;for ((i=0; $i&amp;lt;$&#123;#str&#125;; i=$(($i+1))))&lt;br&gt;do&lt;br&gt; echo &quot;$i=$&#123;str:$i:1&#125;&quot;&lt;br&gt;done&lt;br&gt;&lt;br&gt;&#091;root&#064;local 222&#093;# ./sss    &lt;br&gt;0=a&lt;br&gt;1=b&lt;br&gt;2=c&lt;br&gt;3=d&lt;br&gt;4=e&lt;br&gt;5=f&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Разбить строку на символы (Teor)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9277.html#12</link>
    <pubDate>Sun, 20 Nov 2011 09:58:18 GMT</pubDate>
    <description>Может кто-то подсказать как сделать тоже самое, но не для bash, а для tcsh?&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Разбить строку на символы (shadowmaan)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9277.html#11</link>
    <pubDate>Mon, 14 Nov 2011 18:07:12 GMT</pubDate>
    <description>&amp;gt;&amp;gt;   temp=$&#123;str#?&#125;  # все кроме первого символа &lt;br&gt;&amp;gt;&amp;gt;   char=$&#123;str&#037;&quot;$temp&quot;&#125;  # удаляем все, оставляя только первый символ &lt;br&gt;&amp;gt; Идея прикольная, мне понравилось ) но сколько искал, не нашел - что &lt;br&gt;&amp;gt; за операторы такие &lt;br&gt;&amp;gt; #? и &#037;. особенно непонятно, как во втором случае работает &lt;br&gt;&lt;br&gt;# тут строка str, начиная с ее начала, сравнивается с шаблоном (? в данном случае любой символ)&lt;br&gt;совпадение удаляется, т.е. первый символ, остаток помещается в temp.&lt;br&gt;&lt;br&gt;&#037; сравнивает str с конца и удаляет совпадение с шаблоном, оставляя только первый символ.&lt;br&gt;&lt;br&gt;Это я в какой-то книге видел. К сожалению не помню где.&lt;br&gt;&lt;br&gt;А, вот нашел: Learning the bash Shell, 3rd Edition, By Cameron Newham, ISBN: 0-596-00965-8&lt;br&gt;</description>
</item>

<item>
    <title>Разбить строку на символы (gmananton)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9277.html#10</link>
    <pubDate>Mon, 14 Nov 2011 16:44:47 GMT</pubDate>
    <description>&lt;br&gt;&amp;gt;   temp=$&#123;str#?&#125;  # все кроме первого символа &lt;br&gt;&amp;gt;   char=$&#123;str&#037;&quot;$temp&quot;&#125;  # удаляем все, оставляя только первый символ &lt;br&gt;&lt;br&gt;Идея прикольная, мне понравилось ) но сколько искал, не нашел - что за операторы такие&lt;br&gt;#? и &#037;. особенно непонятно, как во втором случае работает&lt;br&gt;</description>
</item>

<item>
    <title>Разбить строку на символы (shadowmaan)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9277.html#9</link>
    <pubDate>Sat, 12 Nov 2011 22:23:12 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Да, но это только в zsh. В bash, например, echo выведет &lt;br&gt;&amp;gt; аа, совсем я что-то выпал из реальности, совсем забыл что ещё кто-то &lt;br&gt;&amp;gt; остался на баше &lt;br&gt;&amp;gt; В bash немножко сложнее (и надо помнить что элементы в массиве с &lt;br&gt;&amp;gt; нуля нумеруются в отличие от zsh, хотя строго говоря это не &lt;br&gt;&amp;gt; массив): &lt;br&gt;&amp;gt; &#037; str=&apos;123qwe_!**()skhf___&apos; &lt;br&gt;&amp;gt; Лho $&#123;str:4:1&#125; &lt;br&gt;&amp;gt; w &lt;br&gt;&lt;br&gt;Действительно. И аргумент echo заключить в двойные кавычки чтобы&lt;br&gt;расширение не выполнялось.&lt;br&gt;</description>
</item>

<item>
    <title>Разбить строку на символы (BillyBoy)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9277.html#8</link>
    <pubDate>Sat, 12 Nov 2011 22:02:58 GMT</pubDate>
    <description>&amp;gt; Да, но это только в zsh. В bash, например, echo выведет &lt;br&gt;&lt;br&gt;аа, совсем я что-то выпал из реальности, совсем забыл что ещё кто-то остался на баше&lt;br&gt;&lt;br&gt;В bash немножко сложнее (и надо помнить что элементы в массиве с нуля нумеруются в отличие от zsh, хотя строго говоря это не массив):&lt;br&gt;&#037; str=&apos;123qwe_!**()skhf___&apos;&lt;br&gt;&#037;echo $&#123;str:4:1&#125;&lt;br&gt;w&lt;br&gt;</description>
</item>

<item>
    <title>Разбить строку на символы (shadowmaan)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9277.html#7</link>
    <pubDate>Sat, 12 Nov 2011 19:03:30 GMT</pubDate>
    <description>&amp;gt; Надо чтобы любая строка посимвольно представлялась в виде элементов массива.&lt;br&gt;&amp;gt; С awk недостаточно хорошо общался, но думаю, юзать надо его. Примерно так: &lt;br&gt;&amp;gt; Пусть строка в файле имеет вид 123qwe_!**()skhf___ &lt;br&gt;&amp;gt; тогда &lt;br&gt;&amp;gt; awk &apos;/.*/&apos; file &lt;br&gt;&amp;gt; найдет любые символы. Вопрос - как записать каждый из них в отдельную &lt;br&gt;&amp;gt; переменную, да еще и при выходе из awk, который находится внутри &lt;br&gt;&amp;gt; shell-скрипта (это же получается subshell), не потерять эти переменные?&lt;br&gt;&lt;br&gt;Можно примерно так&lt;br&gt;&lt;br&gt;str=&apos;123qwe_!**()skhf___&apos;&lt;br&gt;while &#091; -n &quot;$str&quot; &#093;; do&lt;br&gt;  temp=$&#123;str#?&#125;  # все кроме первого символа&lt;br&gt;  char=$&#123;str&#037;&quot;$temp&quot;&#125;  # удаляем все, оставляя только первый символ&lt;br&gt;  echo &quot;$char&quot;  # обрабатываем символ как надо, например помещаем в массив&lt;br&gt;  str=$temp  # восстанавливаем строку, но уже без первого символа&lt;br&gt;done&lt;br&gt;</description>
</item>

<item>
    <title>Разбить строку на символы (shadowmaan)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9277.html#6</link>
    <pubDate>Sat, 12 Nov 2011 18:36:24 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Надо чтобы любая строка посимвольно представлялась в виде элементов массива.&lt;br&gt;&amp;gt; Что за тупость. В shell любая  строка и так уже массив. &lt;br&gt;&amp;gt; &#037; str=&apos;123qwe_!**()skhf___&apos; &lt;br&gt;&amp;gt; &#037; echo $str&#091;5&#093; &lt;br&gt;&amp;gt; w &lt;br&gt;&lt;br&gt;Да, но это только в zsh. В bash, например, echo выведет&lt;br&gt;&lt;br&gt;123qwe_!**()skhf___&#091;5&#093;&lt;br&gt;</description>
</item>

<item>
    <title>Разбить строку на символы (BillyBoy)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/9277.html#5</link>
    <pubDate>Sat, 12 Nov 2011 13:33:24 GMT</pubDate>
    <description>&amp;gt; Надо чтобы любая строка посимвольно представлялась в виде элементов массива.&lt;br&gt;&lt;br&gt;Что за тупость. В shell любая  строка и так уже массив.&lt;br&gt;&#037; str=&apos;123qwe_!**()skhf___&apos;&lt;br&gt;&#037; echo $str&#091;5&#093;&lt;br&gt;w&lt;br&gt;</description>
</item>

</channel>
</rss>
