<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Замена слова на переменную.]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=29551&amp;type=atom" />
	<updated>2013-08-10T14:56:28Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=29551</id>
		<entry>
			<title type="html"><![CDATA[Re: Замена слова на переменную.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=357732#p357732" />
			<content type="html"><![CDATA[<p>Ясно, значит в моём случае действительно и &quot;g&quot; и &quot;.&quot; не нужны.</p><p>__ Добавил через пол часа: А ничего подобного, отсутствие этих символов приводит к непредсказуемым результатам.</p><p>Вроде всё работает, спасибо всем за помошь. Не знаю как тему закрыть.</p>]]></content>
			<author>
				<name><![CDATA[vovanvster]]></name>
				<uri>https://linuxforum.ru/profile.php?id=3626</uri>
			</author>
			<updated>2013-08-10T14:56:28Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=357732#p357732</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Замена слова на переменную.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=357728#p357728" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>vovanvster⇓ пишет:</cite><blockquote><p>А просто * без точки не достаточна ?</p></blockquote></div><div class="quotebox"><cite>Lupo Alberto⇓ пишет:</cite><blockquote><p>.* — <span style="color: red">один</span> символ или любое их количество;</p></blockquote></div><p>точнее, не менее одного символа должно быть. Только <strong>*</strong> включает и ноль символов.</p>]]></content>
			<author>
				<name><![CDATA[Lupo Alberto]]></name>
				<uri>https://linuxforum.ru/profile.php?id=9018</uri>
			</author>
			<updated>2013-08-10T14:50:18Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=357728#p357728</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Замена слова на переменную.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=357726#p357726" />
			<content type="html"><![CDATA[<p>Точка нужна что бы работала звездочка )<br /><strong>g </strong>нужен если в строке меняется несколько слов заключенных в кавычки, иначе этот параметр не обязателен.</p><p>Скрипт что средствами bash можно использовать только если не существенен формат файла, так как команда <strong>read</strong> обрезает пробелы в начале и в конце строки.</p>]]></content>
			<author>
				<name><![CDATA[ormorph]]></name>
				<uri>https://linuxforum.ru/profile.php?id=221</uri>
			</author>
			<updated>2013-08-10T14:47:01Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=357726#p357726</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Замена слова на переменную.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=357724#p357724" />
			<content type="html"><![CDATA[<p>А просто * без точки не достаточна ?</p>]]></content>
			<author>
				<name><![CDATA[vovanvster]]></name>
				<uri>https://linuxforum.ru/profile.php?id=3626</uri>
			</author>
			<updated>2013-08-10T14:45:16Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=357724#p357724</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Замена слова на переменную.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=357723#p357723" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>vovanvster⇓ пишет:</cite><blockquote><p>надо ставить точку ?</p></blockquote></div><p><em>.*</em> — один символ или любое их количество;<br /></p><div class="quotebox"><cite>vovanvster⇓ пишет:</cite><blockquote><p> И зачем нужно &quot;g&quot; ? Я думал это означает &quot;глобально&quot;.</p></blockquote></div><p><em>g</em> — искать все совпадения в строке.</p>]]></content>
			<author>
				<name><![CDATA[Lupo Alberto]]></name>
				<uri>https://linuxforum.ru/profile.php?id=9018</uri>
			</author>
			<updated>2013-08-10T14:36:28Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=357723#p357723</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Замена слова на переменную.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=357721#p357721" />
			<content type="html"><![CDATA[<p>Большое спасибо, средствами sed конечно красивее. Вы не могли бы объяснить почему в выражении<br /></p><div class="codebox"><pre><code>/\&quot;.*\&quot;/</code></pre></div><p> надо ставить точку ? И зачем нужно &quot;g&quot; ? Я думал это означает &quot;глобально&quot;.<br />То есть действие будет проводиться над всем файлом а не только над одной строкой.<br />Ещё раз большое спасибо.</p>]]></content>
			<author>
				<name><![CDATA[vovanvster]]></name>
				<uri>https://linuxforum.ru/profile.php?id=3626</uri>
			</author>
			<updated>2013-08-10T14:30:24Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=357721#p357721</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Замена слова на переменную.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=357714#p357714" />
			<content type="html"><![CDATA[<p>Если средствами <strong>sed</strong> то можно так:<br /></p><div class="codebox"><pre><code>sed -e &quot;3s/\&quot;.*\&quot;/\&quot;NEW_WORD\&quot;/g&quot; -i test.txt</code></pre></div><p>Если средствами <strong>bash</strong> то можно так:<br /></p><div class="codebox"><pre><code>#!/bin/bash

NEW=\&quot;NEW_WORD\&quot; #новое слово
NUM=3 #номер искомой строки
i=0 # индекс строки
#Функция поиска и замены слова
F_FILE(){
cat test2.txt|while read file 
do
i=$(($i+1))
if [ &quot;$i&quot; -eq &quot;$NUM&quot; ];  then
file=${file//\&quot;*\&quot;/$NEW} 
fi
cat &lt;&lt;&lt;$file  
done 
}

F_FILE &gt;test2.txt.dump
mv test2.txt.dump test2.txt</code></pre></div>]]></content>
			<author>
				<name><![CDATA[ormorph]]></name>
				<uri>https://linuxforum.ru/profile.php?id=221</uri>
			</author>
			<updated>2013-08-10T13:52:58Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=357714#p357714</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Замена слова на переменную.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=357703#p357703" />
			<content type="html"><![CDATA[<p>Здравствуйте.<br />Хочу написать скрипт для редактирования конфигурационного файла. Надо в строке под определённым номером заменить слово между кавычками &quot;&quot; на другое слово которое берётся из переменной вводимой пользователем.<br />Например:<br /></p><div class="codebox"><pre><code>frtkljhvlv
sykcghjkcgh &quot;petr@google.com&quot;
sdjgft &quot;pass&quot; dykihjk,
dfgjcvhkvjk</code></pre></div><p>Не могу сообразить команду sed которая будет это делать.<br />Кажется так должно выглядеть:<br /></p><div class="codebox"><pre><code>sed -e &quot;s номер_строки/то_что_между_кавычками/$variable/&quot; file</code></pre></div><p>И можно ли это исполнить только средствами bash ?<br />Конечно если будет проще.</p>]]></content>
			<author>
				<name><![CDATA[vovanvster]]></name>
				<uri>https://linuxforum.ru/profile.php?id=3626</uri>
			</author>
			<updated>2013-08-10T12:40:21Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=357703#p357703</id>
		</entry>
</feed>
