<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; парснг текстовых файлов из shell]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=36245</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=36245&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «парснг текстовых файлов из shell».]]></description>
		<lastBuildDate>Thu, 02 Oct 2014 10:59:58 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: парснг текстовых файлов из shell]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=424510#p424510</link>
			<description><![CDATA[<div class="quotebox"><cite>beliy пишет:</cite><blockquote><p>А какой смысл в строках:</p></blockquote></div><p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">$ echo &quot;$IFS&quot;|hexdump -C<br />00000000&nbsp; 20 09 0a 0a&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| ...|<br />00000004<br /></div><br />$IFS это список разделителей в bash&#039;е, которые нужны для того, что-бы разрезать строку $S в этом месте кода:<br /></p><div class="codebox"><pre><code>ARRAY=( $S )</code></pre></div><p>если вы знакомы с php, то эта строка эквивалентна <a href="http://php.net/manual/ru/function.explode.php">http://php.net/manual/ru/function.explode.php</a></p><p>Ну и да, разделители нужны и для другого, потому я их сохранил. Иначе ваш код будет очень неожиданно работать, если разделитель у вас будет &quot;|&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Thu, 02 Oct 2014 10:59:58 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=424510#p424510</guid>
		</item>
		<item>
			<title><![CDATA[Re: парснг текстовых файлов из shell]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=424500#p424500</link>
			<description><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>Вот мой вариант</p></blockquote></div><p>А какой смысл в строках:</p><div class="codebox"><pre><code>OLD_IFS=&quot;$IFS&quot;</code></pre></div><div class="codebox"><pre><code>IFS=&quot;$OLD_IFS&quot;</code></pre></div><p>?</p>]]></description>
			<author><![CDATA[null@example.com (beliy)]]></author>
			<pubDate>Thu, 02 Oct 2014 10:35:10 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=424500#p424500</guid>
		</item>
		<item>
			<title><![CDATA[Re: парснг текстовых файлов из shell]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=424449#p424449</link>
			<description><![CDATA[<p><strong>helgisbox</strong>, ещё <strong>info bash</strong> прочитайте, если не хотите быть школьником.</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Thu, 02 Oct 2014 07:59:07 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=424449#p424449</guid>
		</item>
		<item>
			<title><![CDATA[Re: парснг текстовых файлов из shell]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=424448#p424448</link>
			<description><![CDATA[<div class="quotebox"><cite>helgisbox пишет:</cite><blockquote><p>1) Каким образом выполнить парсинг из шелла текстового файла с разделителями?</p></blockquote></div><p>вариантов много. Вот мой вариант:<br /></p><div class="codebox"><pre><code>#!/bin/bash

FILE_NAME=&quot;t&quot;

OLD_IFS=&quot;$IFS&quot;
IFS=&quot;|&quot;

declare ARRAY

while read S
do
    echo &quot;$S&quot;
    ARRAY=( $S )
    for (( J=0; J&lt;${#ARRAY[@]}; J++ ))
    do
        echo &quot;$J - ${ARRAY[$J]}&quot;
    done
done &lt;&quot;$FILE_NAME&quot;

IFS=&quot;$OLD_IFS&quot;</code></pre></div><div class="quotebox"><cite>helgisbox пишет:</cite><blockquote><p>Какой командой можно получить мануал по такой команде? Пробовал &quot;man for&quot; - результат пустой, а в &quot;man sh&quot; по for описание короткое. Если есть мануал - прошу кинуть в меня им.</p></blockquote></div><p><strong>man bash</strong></p><p><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">$ help for<br />for: for NAME [in WORDS ... ] ; do COMMANDS; done<br />&nbsp; &nbsp; Execute commands for each member in a list.<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; The `for&#039; loop executes a sequence of commands for each member in a<br />&nbsp; &nbsp; list of items.&nbsp; If `in WORDS ...;&#039; is not present, then `in &quot;$@&quot;&#039; is<br />&nbsp; &nbsp; assumed.&nbsp; For each element in WORDS, NAME is set to that element, and<br />&nbsp; &nbsp; the COMMANDS are executed.<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; Exit Status:<br />&nbsp; &nbsp; Returns the status of the last command executed.<br /></div></p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Thu, 02 Oct 2014 07:54:37 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=424448#p424448</guid>
		</item>
		<item>
			<title><![CDATA[Re: парснг текстовых файлов из shell]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=424446#p424446</link>
			<description><![CDATA[<div class="quotebox"><cite>gabix пишет:</cite><blockquote><p>For — какбэ не команда, а оператор, поэтому man-страниц и нет. Ну а мануалка вот:<br /><a href="http://tldp.org/LDP/abs/html/loops.html">http://tldp.org/LDP/abs/html/loops.html</a></p></blockquote></div><p>логично ,что оператор. Почему-то виндозники по мену мануал отдельно вынесли. Ну да ладно. По той ссылке все подробно описано. Спасибо. Но разбора строки, которая берется из файла там нет. Возможно два в одном в cmd сделано для уменьшения числа команд и, как следствие, для упрщения самого командного интерпретатора. Стало быть задача сводится к другому: </p><p><strong>Какими командами можно пропарсить строку в shell-е</strong>? Может есть какой-нибудь strstr его можно было бы в цикле проанализировать.</p>]]></description>
			<author><![CDATA[null@example.com (helgisbox)]]></author>
			<pubDate>Thu, 02 Oct 2014 07:41:24 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=424446#p424446</guid>
		</item>
		<item>
			<title><![CDATA[Re: парснг текстовых файлов из shell]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=424444#p424444</link>
			<description><![CDATA[<p>For — какбэ не команда, а оператор, поэтому man-страниц и нет. Ну а мануалка вот:<br /><a href="http://tldp.org/LDP/abs/html/loops.html">http://tldp.org/LDP/abs/html/loops.html</a></p>]]></description>
			<author><![CDATA[null@example.com (gabix)]]></author>
			<pubDate>Thu, 02 Oct 2014 07:27:53 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=424444#p424444</guid>
		</item>
		<item>
			<title><![CDATA[парснг текстовых файлов из shell]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=424442#p424442</link>
			<description><![CDATA[<p>В винде часто использую следующую конструкцию:<br />1) имею файл со списком хостов и параметров, например счетчиками производительности. которые надо время от времени запускать, число счетчиков разное ,но не больше 7, например.<br />&lt;hostname1&gt;|&lt;counter name1&gt;|&lt;counter name2&gt;|&lt;counter name3&gt;<br />&lt;hostname2&gt;|&lt;counter name1&gt;|&lt;counter name2&gt;<br />&lt;hostname3&gt;|&lt;counter name1&gt;|&lt;counter name2&gt;</p><p>В скрипте пишу следующую конструкцию:</p><p>for /f &quot;delims=|;tokens=1,2,3,4,5,6,7&quot; do (<br />выполняю действия с переменными %%i (первое вхождение) %%j (второе) и&nbsp; т д.<br />)</p><p>При <br />том мануал по даной комманде в винде можно получить простой комбинацией: &quot;help for&quot; в cmd.exe</p><p><strong>Вопросы</strong>:<br />1) Каким образом выполнить <strong>парсинг</strong> из шелла <strong>текстового файла с разделителями</strong>?<br />2) <em>Какой командой можно получить мануал по такой команде</em>? Пробовал &quot;man for&quot; - результат пустой, а в &quot;man sh&quot; по for описание короткое. Если есть мануал - прошу кинуть в меня им.</p>]]></description>
			<author><![CDATA[null@example.com (helgisbox)]]></author>
			<pubDate>Thu, 02 Oct 2014 07:20:54 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=424442#p424442</guid>
		</item>
	</channel>
</rss>
