<?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; SED замена символов в определенной части текста]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=10554</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=10554&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «SED замена символов в определенной части текста».]]></description>
		<lastBuildDate>Tue, 01 Feb 2011 14:49:10 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: SED замена символов в определенной части текста]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=139467#p139467</link>
			<description><![CDATA[<p>Спасибо за ответ. Сейчас вижу, что не совсем корректно описал строку, с которой производятся манипуляции. На самом деле она седержит не один &quot;/&quot;, а несколько.</p><div class="codebox"><pre><code>some text with spaces/some more text with spaces/more and more text with spaces/another_text_with_spaces_which_must_be_replaced</code></pre></div><p>И замену мы делаем в определенной части, как правило последней.</p><p>Ваш пример я вижу так:<br />h;s~/.*~~;x;s~[^/]*/~~; - записать в hold space все символы до первого /<br />s/ /_/g; - в оставшемся заменить все пробелы на подчеркивания<br />H;g;s~\n~/~ - добавить к содержимому hold space измененную часть</p><p>Поправьте, если я не прав.<br />Непонятно обилие знаков ~, для чего он нужен?</p>]]></description>
			<author><![CDATA[null@example.com (andro_id)]]></author>
			<pubDate>Tue, 01 Feb 2011 14:49:10 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=139467#p139467</guid>
		</item>
		<item>
			<title><![CDATA[Re: SED замена символов в определенной части текста]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=139422#p139422</link>
			<description><![CDATA[<div class="quotebox"><cite>andro_id пишет:</cite><blockquote><p>sed &#039;s/\ /_/g&#039; - заменяем пробелы на подчеркивания</p></blockquote></div><p>заменяет комбинацию кривозаписаный пробел на подчёркивание. без g заменяет только первый, с g заменяет все. Обратный слеш тут лишний. Пробельные символы записываются в sed так: <strong>\s</strong>.</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Tue, 01 Feb 2011 12:36:00 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=139422#p139422</guid>
		</item>
		<item>
			<title><![CDATA[Re: SED замена символов в определенной части текста]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=139418#p139418</link>
			<description><![CDATA[<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">$ sed &#039;h;s~/.*~~;x;s~[^/]*/~~;s/ /_/g;H;g;s~\n~/~&#039; 11.txt <br />some text with spaces/another_text_with_spaces_which_must_be_replaced<br />more some text with spaces/more_another_text_with_spaces_which_must_be_replaced<br /></div></p><p>делал так-же как вы, используя Hold Space для хранения первой части строки.</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Tue, 01 Feb 2011 12:32:43 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=139418#p139418</guid>
		</item>
		<item>
			<title><![CDATA[SED замена символов в определенной части текста]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=139398#p139398</link>
			<description><![CDATA[<p>Доброго времени суток.</p><p>Есть задачка, заменить пробелы на &quot;_&quot; в файле, но не во всем тексте, а определенных участках.<br />Пример:</p><div class="codebox"><pre><code>some text with spaces/another text with spaces which must be replaced
more some text with spaces/more another text with spaces which must be replaced</code></pre></div><p>нужно заменить на:<br /></p><div class="codebox"><pre><code>some text with spaces/another_text_with_spaces_which_must_be_replaced
more some text with spaces/more_another_text_with_spaces_which_must_be_replaced</code></pre></div><p>Пытаюсь так:</p><div class="codebox"><pre><code>cat testfile | cut -d / -f2 | sed &#039;s/\ /_/g&#039;</code></pre></div><p>testfile - файл, который содержит эти строки<br />cut -d / -f2 - делим текст с пом разделителя &quot;/&quot; на 2 части и берем 2-ю<br />sed &#039;s/\ /_/g&#039; - заменяем пробелы на подчеркивания<br />Но тогда замена происходит во всем тексте. Если убрать &quot;g&quot;, то замена вообще не происходит.<br />Может кто подскажет, как произвести замену только во 2-й половинке?</p>]]></description>
			<author><![CDATA[null@example.com (andro_id)]]></author>
			<pubDate>Tue, 01 Feb 2011 11:27:47 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=139398#p139398</guid>
		</item>
	</channel>
</rss>
