<?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=20947</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=20947&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Использование переменных в sed».]]></description>
		<lastBuildDate>Fri, 16 Mar 2012 07:41:49 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=260163#p260163</link>
			<description><![CDATA[<div class="quotebox"><cite>Fat-Zer пишет:</cite><blockquote><p> это и есть ручками. ИМХО ТС хотел видеть что-то вроде echo array[2:8]. а такого в баше нет</p></blockquote></div><p>а надо? смысл-то какой?<br /></p><div class="quotebox"><cite>Fat-Zer пишет:</cite><blockquote><p>ладно... спорить бесполезно, ибо, судя по соседним веткам, вы сегодня снова не с той ноги встали...</p></blockquote></div><p>на такой вброс г-на вентилятор я могу ответить только сцылкой: <a href="http://lurkmore.to/42">http://lurkmore.to/42</a></p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Fri, 16 Mar 2012 07:41:49 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=260163#p260163</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=260150#p260150</link>
			<description><![CDATA[<p><strong>drBatty</strong>, это и есть ручками. ИМХО ТС хотел видеть что-то вроде <strong>echo array[2:8]</strong>. а такого в баше нет...<br />ладно... спорить бесполезно, ибо, судя по соседним веткам, вы сегодня снова не с той ноги встали...</p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Fri, 16 Mar 2012 07:09:50 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=260150#p260150</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=260144#p260144</link>
			<description><![CDATA[<div class="quotebox"><cite>Fat-Zer пишет:</cite><blockquote><p>во-первых, не придирайтесь к словам.</p></blockquote></div><p>а не надо их коверкать.<br /></p><div class="quotebox"><cite>Fat-Zer пишет:</cite><blockquote><p>во-вторых, столько же, но man ручками.</p></blockquote></div><p>а выше показано, что без всяких ручек {x..y..z} всё отлично работает. Если вы этого не знали - ваши проблемы.</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Fri, 16 Mar 2012 07:03:47 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=260144#p260144</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=260136#p260136</link>
			<description><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>&quot;питон&quot; во первых не &quot;питон&quot;, а пайтон</p></blockquote></div><p>во-первых, не придирайтесь к словам.<br /></p><div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>умеет он ровно столько же, сколько и баш.</p></blockquote></div><p>во-вторых, столько же, но man ручками.</p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Fri, 16 Mar 2012 06:49:43 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=260136#p260136</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=260127#p260127</link>
			<description><![CDATA[<p><strong>Fat-Zer</strong>, эх... не стыдно? &quot;питон&quot; во первых не &quot;питон&quot;, а пайтон, а во вторых, умеет он ровно столько же, сколько и баш. man тьюринг полнота.</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Fri, 16 Mar 2012 06:34:06 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=260127#p260127</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=260125#p260125</link>
			<description><![CDATA[<div class="quotebox"><cite>vadoz пишет:</cite><blockquote><p>Вот массив как вывести допустим элементы со 2 по 8 не перечесляя их?</p></blockquote></div><div class="codebox"><pre><code>for x in {2..8}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Fri, 16 Mar 2012 06:32:14 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=260125#p260125</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=259961#p259961</link>
			<description><![CDATA[<div class="quotebox"><cite>vadoz пишет:</cite><blockquote><p>А как вывести элементы массива диапазоном</p></blockquote></div><p>только ручками, баш не питон...</p><p>ЗЫ: пользуйтесь тегами code/console для оформления....</p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Thu, 15 Mar 2012 14:34:48 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=259961#p259961</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=259950#p259950</link>
			<description><![CDATA[<p>А как вывести элементы массива диапазоном ....ничего по этому поводу не нашел..либо все либо выборочно по инжексу элемента массива??</p><p>Вот массив как вывести допустим элементы со 2 по 8 не перечесляя их?<br />LEVEL[0]=&quot;*&quot;<br />LEVEL[1]=&quot;emerg&quot;<br />LEVEL[2]=&quot;alert&quot;<br />LEVEL[3]=&quot;crit&quot;<br />LEVEL[4]=&quot;err&quot;<br />LEVEL[5]=&quot;warning&quot;<br />LEVEL[6]=&quot;notice&quot;<br />LEVEL[7]=&quot;info&quot;<br />LEVEL[8]=&quot;debug&quot;</p>]]></description>
			<author><![CDATA[null@example.com (vadoz)]]></author>
			<pubDate>Thu, 15 Mar 2012 13:41:53 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=259950#p259950</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=259871#p259871</link>
			<description><![CDATA[<div class="quotebox"><cite>vadoz пишет:</cite><blockquote><p>Вообще цель скрипта - прочитать файл syslog.conf и проанализировать на наличие параметров отвечающих за регистрацию (допустим авторизации ) - параметр auth или authpriv.</p></blockquote></div><p>вроде вот эта утилита <a href="http://sourceforge.net/projects/watchlog/">http://sourceforge.net/projects/watchlog/</a> делает тоже самое? Не?<br /></p><div class="quotebox"><cite>vadoz пишет:</cite><blockquote><p>Уровень важности сообщений syslog</p></blockquote></div><p>а где у вас syslog читается?<br /></p><div class="quotebox"><cite>vadoz пишет:</cite><blockquote><p>echo &#039;Параметры отвечающие за регистрацию событий авторизации ==&gt;&#039; &quot;${i}&quot;&#039;&nbsp; &#039;&#039;записываются в файл ==&gt;&#039; &quot;${VAR_TEMP}&quot;</p></blockquote></div><p>почему нельзя написать так?<br /></p><div class="codebox"><pre><code>echo &quot;Параметры отвечающие за регистрацию событий авторизации ==&gt; ${i}  записываются в файл ==&gt;${VAR_TEMP}&quot;</code></pre></div><p>зачем эта куча кавычек?<br /></p><div class="quotebox"><cite>vadoz пишет:</cite><blockquote><p>в конце не пишется * хотя она есть в конфиге???</p></blockquote></div><p>я тоже с вашими кавычками запутался. Наверное bash эти звёздочки раскрыл. Он ведь все звёздочки раскрывает, что может. Просто * всегда раскрывается в список не скрытых файлов в текущем каталоге. Он у вас очевидно пуст.<br /></p><div class="quotebox"><cite>vadoz пишет:</cite><blockquote><p>if [[ ${i} == *&quot;auth.&quot;&quot;${LEVEL[index]}&quot;* ]] || [[ ${i} == *&quot;authpriv.&quot;&quot;${LEVEL[index]}&quot;* ]]; then</p></blockquote></div><p>такой код называется write only. Написал, и больше НИКОГДА не трогай.&nbsp; <img src="https://linuxforum.ru/img/smilies/ac.gif" alt="ac" /> <br />сотрите, и напишите нормально. Я ничего не понял.<br /></p><div class="quotebox"><cite>NoXi0uZ пишет:</cite><blockquote><p>Про . и \n читал в книге&nbsp; Девид Бизли Python</p></blockquote></div><p>ну что касается юникода, то американцев этот вопрос слабо волнует, всякие перлы до сих пор считают Ф за два символа. Думаю пайтон не исключение, и тупо не умеет юникод(по умолчанию). Печально конечно, но что делать... А что касается \n, то тут вопрос намного более интересный, и дело тут в том, включен/выключен в ваших регулярках мультистрочный режим.<br />Не помню как в пайтоне, но в sed (а так же в перле, и в Over9000 других ЯП) мультистрочный режим таки ВЫКЛЮЧЕН.<br /><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 -e &quot;a\nx&quot; | sed &#039;N&#039; # эта команда объединяет две строки в одну строчку с \n посередине.<br />a<br />x<br /># Ну всё равно это выглядит как 2 строки<br />$ echo -e &quot;a\nx&quot; | sed &#039;N;s/.*/+++/&#039;<br />+++<br /># но вот меняется таки обе этих строчки, вместе с \n<br />$ echo -e &quot;a\nx&quot; | sed &#039;N;s/.*/+++/m&#039; # в мультистрочном режиме sed учитывает, что строчек на самом деле две, и меняет не всё, а только первую строчку<br />+++<br />x<br /># первое совпадение...<br />$ echo -e &quot;a\nx&quot; | sed &#039;N;s/.*/+++/gm&#039;<br />+++<br />+++<br /># или все совпадения но отдельно по строчкам</div><br />и да, читать надо info sed или&nbsp; мой перевод<br /></p><div class="quotebox"><blockquote><p>«.» (точка)<br />&nbsp; &nbsp; Совпадает с любым одиночным символом, включая символ перевода строки.</p></blockquote></div><p>лучше таки оригинал, ибо в этой вашей CentOS как всегда какая-нить древность <img src="https://linuxforum.ru/img/smilies/ac.gif" alt="ac" /><br />А ну, да:<br /><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">-bash-3.2# sed &#039;z&#039;<br />sed: -e expression #1, char 1: unknown command: `z&#039;<br />-bash-3.2# sed --version<br />GNU sed version 4.1.5<br />Copyright (C) 2003 Free Software Foundation, Inc.<br />This is free software; see the source for copying conditions.&nbsp; There is NO<br />warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,<br />to the extent permitted by law.<br /></div><br />не система, а полная задница&nbsp; <img src="https://linuxforum.ru/img/smilies/ah.gif" alt="ah" /></p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Thu, 15 Mar 2012 09:49:30 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=259871#p259871</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=259862#p259862</link>
			<description><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>там не просто точка, а ПРОБЕЛ перед точкой</p></blockquote></div><p>мой косяк, не заметил)</p><p>Про . и \n читал в книге&nbsp; Девид Бизли Python: Полный справочник, стр 354. Дословно там написано: </p><div class="quotebox"><blockquote><p>. - любой символ, кроме символа перевода строки.</p></blockquote></div><p>Наверняка это может быть отличием в трактовке питонячих регэкспов и регэкспов в sed (а вообще и перевода книги). Учту на будующее.</p>]]></description>
			<author><![CDATA[null@example.com (NoXi0uZ)]]></author>
			<pubDate>Thu, 15 Mar 2012 09:00:38 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=259862#p259862</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=259861#p259861</link>
			<description><![CDATA[<p>Вообще цель скрипта - прочитать файл syslog.conf и проанализировать на наличие параметров отвечающих за регистрацию (допустим авторизации ) - параметр auth или authpriv.</p><p>Таким образом я командой DATA_FOR_CHECK=`cat /etc/syslog.conf | sed &#039;/^#/d;/^$/d&#039; | sed -r &#039;s/\t+/ /;s/\s+/ /&#039;` - записываю в переменную все параметры игнорируя закоменченные и пустые строки (sed &#039;/^#/d;/^$/d&#039;),<br />при этом между селекторами (auth или authpriv) и местом записи событий&nbsp; должен остаться один пробел для того, чтобы получилось два столбика из селекторов и места записи логов - вот так:</p><p>*.info;mail.none;authpriv.none;cron.none /var/log/messages<br />authpriv.info /var/log/secure<br />auth.* /var/log/secure-auth<br />daemon.* /var/log/daemon<br />mail.* -/var/log/maillog<br />cron.* /var/log/cron<br />*.emerg *<br />uucp,news.crit /var/log/spooler<br />local7.* /var/log/boot.log<br />user.* /var/log/userlog</p><p>После чего выполняется вот эта <span style="color: #ff0000"><strong>CENSORED</strong></span> для сравления уровней важности сообщений....но оно еще не докончено....<br />#Уровень важности сообщений syslog<br />LEVEL[0]=&quot;emerg&quot;<br />LEVEL[1]=&quot;alert&quot;<br />LEVEL[2]=&quot;crit&quot;<br />LEVEL[3]=&quot;err&quot;<br />LEVEL[4]=&quot;warning&quot;<br />LEVEL[5]=&quot;notice&quot;<br />LEVEL[6]=&quot;info&quot;<br />LEVEL[7]=&quot;debug&quot;<br />LEVEL[8]=&quot;*&quot;</p><p>#Построчное считывание параметров системы регистрации событий, записанных в переменную DATA_FOR_CHECK------------------------------------<br />for i in ${DATA_FOR_CHECK};<br />do</p><p>&nbsp; &nbsp;#Поиск параметров auth, authpriv отвечающих за безопасность и авторизацию в системе<br />&nbsp; &nbsp;if [[ ${i} == *&quot;auth&quot;* ]] || [[ ${i} == *&quot;authpriv&quot;* ]] || [[ ${i} == *&quot;*.&quot;* ]]; then<br />&nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; for index in 0 1 2 3 4 5 6 7 8<br />&nbsp; &nbsp; &nbsp; do<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; VAR_TEMP=`cat /etc/syslog.conf | sed &#039;/^#/d;/^$/d&#039;| sed -r &#039;s/\t+/ /&#039; | sed -r &#039;s/\s+/ /&#039; | sed -n &#039;&#039;$N&#039; p&#039; | cut -f2`</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if [[ ${i} == *&quot;auth.&quot;&quot;${LEVEL[index]}&quot;* ]] || [[ ${i} == *&quot;authpriv.&quot;&quot;${LEVEL[index]}&quot;* ]]; then<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo &#039;Параметры отвечающие за регистрацию событий авторизации ==&gt;&#039; &quot;${i}&quot;&#039;&nbsp; &#039;&#039;записываются в файл ==&gt;&#039; &quot;${VAR_TEMP}&quot;</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; elif [[ ${i} == *&quot;*.&quot;&quot;${LEVEL[index]}&quot;* ]] &amp;&amp; [[ ${i} != *&quot;authpriv.none&quot;* &amp;&amp; ${i} != *&quot;auth.none&quot;* ]]; then<br />&nbsp; &nbsp;&nbsp; &nbsp;echo &#039;Параметры отвечающие за регистрацию событий авторизации ==&gt;&#039; &quot;${i}&quot;&#039;&nbsp; &#039;&#039;записываются в файл ==&gt;&#039; &quot;${VAR_TEMP}&quot;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fi</p><p>&nbsp; &nbsp; &nbsp; done</p><p>&nbsp; &nbsp; &nbsp; EXISTANS_FLAG=true&nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; #Поиск ключевого слова &quot;none&quot; для параметров auth и auhpri, отменяющего регистрацию данных событий----------------------------------<br />&nbsp; &nbsp; &nbsp; if [[ ${i} == *auth.none* ]] || [[ ${i} == *authpriv.none* ]] || [[ ${i} == *&quot;*.none&quot;*&nbsp; ]]; then<br />&nbsp; &nbsp; &nbsp; FLAG=false</p><p>&nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; FLAG=true</p><p>&nbsp; &nbsp; &nbsp; fi<br />&nbsp; &nbsp;fi<br />N=$[ $N + 1 ]<br />done</p><p>А цель получить запись такого вида :</p><p>Параметры отвечающие за регистрацию событий авторизации ==&gt; authpriv.info&nbsp; записываются в файл ==&gt; auth.* /var/log/secure-auth<br />Параметры отвечающие за регистрацию событий авторизации ==&gt; auth.*&nbsp; записываются в файл ==&gt; mail.* -/var/log/maillog<br />Параметры отвечающие за регистрацию событий авторизации ==&gt; *.emerg&nbsp; записываются в файл ==&gt; </p><br /><p>Только вот не могу понять почему в последней строчке:<br />Параметры отвечающие за регистрацию событий авторизации ==&gt; *.emerg&nbsp; записываются в файл ==&gt; <br />в конце не пишется * хотя она есть в конфиге???</p>]]></description>
			<author><![CDATA[null@example.com (vadoz)]]></author>
			<pubDate>Thu, 15 Mar 2012 08:53:41 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=259861#p259861</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=259860#p259860</link>
			<description><![CDATA[<div class="quotebox"><cite>NoXi0uZ пишет:</cite><blockquote><p>&nbsp; &nbsp; sed &#039;s/ .*//&#039;<br />не понял это место...</p></blockquote></div><p>там не просто точка, а ПРОБЕЛ перед точкой. Потому удаляется не всё, а только первый пробел, и всё остальное. А вот s/.* // удаляет не всё до первого пробела, а всё до последнего.<br /></p><div class="quotebox"><cite>NoXi0uZ пишет:</cite><blockquote><p> sed &#039;s/\s.*//&#039;&nbsp; <br />&nbsp; должно быть.</p></blockquote></div><p>ну можно и так конечно. Так оно даже лучше. Пустые строчки тоже надо удалять так s/^\s*$/, потому-что в пустых строчках могут быть пробельные символы. И на хвостах тоже могут быть. Из MS-DOS подобных ос постоянно приходят файлы с \r на конце.<br /></p><div class="quotebox"><cite>NoXi0uZ пишет:</cite><blockquote><p>. любой символ ,кроме \n.</p></blockquote></div><p>неправильно. \n это тоже символ. И кстати тоже пробельный, и матчится и точкой и \s тоже. Другое дело, что sed обычно его хоть и читает, но в строчку для обработки не включает. Однако &quot;обычно&quot; не значит &quot;всегда&quot;. Ну и ещё как всегда напомню, что точка матчит не всё. По стандарту с точкой совпадают любые символы, однако по другому стандарту, не все последовательности байтов в юникоде являются символами. Потому s/.*// ВНЕЗАПНО стала стирать не все строчки, и пришлось делать новую команду z для этого <img src="https://linuxforum.ru/img/smilies/ac.gif" alt="ac" /></p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Thu, 15 Mar 2012 08:49:48 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=259860#p259860</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=259852#p259852</link>
			<description><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>вывести всё до первого пробела? ну если уж вам не мила sed, которая это делает так sed &#039;s/ .*//&#039;</p></blockquote></div><p>не понял это место... <br />. любой символ ,кроме \n.<br />Как </p><div class="codebox"><pre><code>  sed &#039;s/ .*//&#039; </code></pre></div><p> выведет все до первого пробела? или я не так понял цель этой штуки ,она ж все стирает</p><p>ИМХО, что-то вроде <br /></p><div class="codebox"><pre><code> sed &#039;s/\s.*//&#039;  </code></pre></div><p>&nbsp; должно быть.</p>]]></description>
			<author><![CDATA[null@example.com (NoXi0uZ)]]></author>
			<pubDate>Thu, 15 Mar 2012 08:28:18 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=259852#p259852</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=259839#p259839</link>
			<description><![CDATA[<div class="quotebox"><cite>vadoz пишет:</cite><blockquote><p>Я с sed еще толком не разобрался, а так ....разбил на небольшие блоки и мне понятней потом самому в этом разобраться</p></blockquote></div><p>вам это только так кажется. Начнём с того, что sed -n &#039;/условие/!p&#039; это масло масленное. Вам надо удалить строчку по условию? Ну так и пишите sed &#039;/условие/d&#039;<br />Далее, в одной команде можно сделать два действия. Например sed &#039;/условие1/d; /условие2/d&#039; (пробел после ; тут только для удобочитаемости)<br />Кроме того, простые условия можно группировать в одном регулярном выражении: sed -r &#039;/условие1|условие2/d&#039;, но самое важное в том, что sed это УЖЕ цикл, который выполняется для всех строчек входного текста. ОЧЕНЬ плохая идея делать цикл с таким же циклом. Хотя-бы потому, что это непонятно и очень медленно.<br /></p><div class="quotebox"><cite>vadoz пишет:</cite><blockquote><p>sed s/&#039; \+&#039;/&#039; &#039;/g</p></blockquote></div><p>вот это я с трудом понял. Замените на sed -r &#039;s/\s+/ /&#039;, ибо это лучше читается, и обычно именно это и требуется (вы потом строчку в bash суёте, а для него всё едино, что пробелы, что табуляции, но вот \r может привести к проблемам. Хотя это тоже пробельный символ, но рисуется он совсем не как пробел). <br /></p><div class="quotebox"><cite>vadoz пишет:</cite><blockquote><p>| cut -f1</p></blockquote></div><p>а вот этим вы чего хотели добиться? вывести всё до первого пробела? ну если уж вам не мила sed, которая это делает так sed &#039;s/ .*//&#039;, дык дочитайте мануал cut до конца<br /></p><div class="quotebox"><cite>man cut пишет:</cite><blockquote><p>&nbsp; &nbsp; &nbsp;-d, --delimiter=DELIM<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; use DELIM instead of TAB for field delimiter</p></blockquote></div><p>что-то я сомневаюсь, что у вас в /etc/syslog.conf поля разделяются исключительно TAB&#039;ом. (хотя от Red Hat можно ожидать и не такой гадости&nbsp; wink )</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Thu, 15 Mar 2012 07:56:45 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=259839#p259839</guid>
		</item>
		<item>
			<title><![CDATA[Re: Использование переменных в sed]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=259824#p259824</link>
			<description><![CDATA[<p>DATA_FOR_CHECK=`cat /etc/syslog.conf | sed -n &#039;/^#/ !p&#039; | sed -n &#039;/^$/ !p&#039; | sed s/&#039; \+&#039;/&#039; &#039;/g`</p><p>Я с sed еще толком не разобрался, а так ....разбил на небольшие блоки и мне понятней потом самому в этом разобраться smile</p>]]></description>
			<author><![CDATA[null@example.com (vadoz)]]></author>
			<pubDate>Thu, 15 Mar 2012 07:14:37 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=259824#p259824</guid>
		</item>
	</channel>
</rss>
