<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=15161</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=15161&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Grep и кавычки в регулярном выражении [win].».]]></description>
		<lastBuildDate>Wed, 05 Feb 2020 09:20:28 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137656#p137656</link>
			<description><![CDATA[<div class="quotebox"><cite>DnsIs пишет:</cite><blockquote><div class="codebox"><pre><code>egrep -o &quot;http://[^\&quot;]+&quot; text.txt</code></pre></div><p>Но вот загвоздка: в регулярном выражении используется кавычка, она хоть и экранирована</p></blockquote></div><p>Не вижу ни одной экранированной с точки зрения cmd.exe кавычки.</p><p>Если открывающую кавычку не экранировать, то идущие за ней спецсимволы в экранировании не нуждаются, а если не экранировать — нуждаются:<br /></p><div class="codebox"><pre><code>echo &quot;&amp;&quot;^&amp;^&quot;
echo ^&quot;^&amp;&quot;&amp;&quot;</code></pre></div><p> — оба выведут «&quot;&amp;&quot;&amp;&quot;».</p><p>Перенаправления после команды должны работать:<br /></p><div class="codebox"><pre><code>egrep -o &quot;http://[^\&quot;]+^&quot; text.txt &gt;output.txt
egrep -o ^&quot;http://[^^\&quot;]+&quot; text.txt &gt;output.txt
egrep -o ^&quot;http://[^^\^&quot;]+^&quot; text.txt &gt;output.txt</code></pre></div><p>Автодополнение по TAB не получается, вероятно, из-за нечётного числа кавычек. Для этого можно ввести лишнюю кавычку и пробел, затем их удалить.</p>]]></description>
			<author><![CDATA[null@example.com (wisgest)]]></author>
			<pubDate>Wed, 05 Feb 2020 09:20:28 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137656#p137656</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137639#p137639</link>
			<description><![CDATA[<div class="quotebox"><cite>Rumata пишет:</cite><blockquote><p>Попробуйте заменить кавычки их 16-ричным ASCII кодом (x22) и используйте опцию -P</p></blockquote></div><p>Точно. Эврика! Мой grep был без perl-повых регсэпов и я забыл про него, заменил на другой и вуаля.<br />Дополню лишь: </p><div class="codebox"><pre><code>&quot;https?://[^\x22]+&quot;</code></pre></div><p>УРА.</p>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Tue, 04 Feb 2020 09:09:49 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137639#p137639</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137638#p137638</link>
			<description><![CDATA[<p>Попробуйте заменить кавычки их 16-ричным ASCII кодом (x22) и используйте опцию -P</p><p>исходный пример из первого сообщения<br /></p><div class="codebox"><pre><code>
egrep -o &quot;http://[^\&quot;]+&quot; text.txt
</code></pre></div><p>измененный пример<br /></p><div class="codebox"><pre><code>
grep -P -o &quot;http://[^\x22]+&quot; text.txt
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Tue, 04 Feb 2020 08:31:35 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137638#p137638</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137637#p137637</link>
			<description><![CDATA[<div class="quotebox"><cite>Rumata пишет:</cite><blockquote><p>Подразумеваю виндовую команду echo. С юниксовой командой всё должно работать хорошо. По крайней мере в юниксовом терминале.</p></blockquote></div><p>Проверил по всякому, в винде не работает. Сорри. Без кавычки все в порядке, но как только встречается кавычка, все ломается.</p><div class="quotebox"><cite>JSman пишет:</cite><blockquote><p>...Просто запускаем с параметром -f, указываем файл с регулярным выражением.</p></blockquote></div><p>Да, я писал про <a href="http://forum.script-coding.com/viewtopic.php?pid=137632#p137632">такой способ</a> выше. Но я хотел все уместить в одно командную строку, поэтому у меня получилось это сделать лишь с помощью шестнадцатеричных кодов символов.</p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Никак.</p></blockquote></div><p>Собственно я помнил про эту конструкцию, она уже была на этом форуме (хрен ее знает, как оно работает вообще), но опять же, это только в батнике.</p><br /><p>В итоге получается, что для командной строки windows трудно найти простое решение, для поиска кавычек в тексте (не простого поиска, а поиска регуляркой), с последующим выводом в файл. Спасет только батник.</p><p>Вероятно что-то можно придумать на perl, но к сожалению я его не знаю. Мне ближе lua, который вероятно будет даже быстрее.</p><p>Всем спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Tue, 04 Feb 2020 04:58:37 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137637#p137637</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137635#p137635</link>
			<description><![CDATA[<div class="quotebox"><cite>DnsIs пишет:</cite><blockquote><p>Как запихать в файл строку http://[\&quot;]+ с помощью win-echo я ума не приложу. Проблема в том, что на конце появляются символы окончания строки и перевода каретки, а они все портят.</p></blockquote></div><p>Никак. &quot;Запихивайте&quot; строку в файл посредством:<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

&lt;nul &gt;&quot;Out.txt&quot; set /p sVar=http://[\&quot;]

endlocal
exit /b 0
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 03 Feb 2020 14:55:13 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137635#p137635</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137634#p137634</link>
			<description><![CDATA[<p>В общем, не поленился и скачал egrep. Просто запускаем с параметром -f, указываем файл с регулярным выражением.</p><p>Содержание reg.txt:<br /></p><div class="codebox"><pre><code>
&quot;http://[^&quot;]+&quot;
</code></pre></div><div class="codebox"><pre><code>
egrep -f reg.txt text.txt &gt; res.txt
PAUSE
</code></pre></div><p>Все пишется в res.txt.</p><p>Добавил утилиты с библиотеками, чтобы не пришлось искать по Интернету.</p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Mon, 03 Feb 2020 14:23:29 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137634#p137634</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137633#p137633</link>
			<description><![CDATA[<p><strong>DnsIs</strong></p><p>Экстраполируя Ваш ответ, подозреваю, что это решение тоже не проходит</p><div class="codebox"><pre><code>
echo REGEXP | grep -f - FILENAME
</code></pre></div><p>Подразумеваю виндовую команду <strong>echo</strong>. С юниксовой командой всё должно работать хорошо. По крайней мере в юниксовом терминале.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Mon, 03 Feb 2020 11:45:03 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137633#p137633</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137632#p137632</link>
			<description><![CDATA[<div class="quotebox"><cite>JSman пишет:</cite><blockquote><p>^ - это символ экранирования</p></blockquote></div><p>Так тоже не получается (в итоге я все сделал на lua, получилось гораздо быстрее написать код и проще)<br />Но если не уходить за рамки этой темы, то пока только костыль:<br /></p><div class="codebox"><pre><code>echo -n -e &quot;\x68\x74\x74\x70\x3a\x2f\x2f\x5b\x5e\x22\x5d\x2b\x0a&quot; &gt; REG &amp;&amp; egrep -o -f REG text.txt</code></pre></div><p>Причем виндовая команда <strong>echo </strong>не подходит, нужно брать тоже из GNU утилит.<br />То есть регулярку пишем в отдельный файл, и потом уже пользуемся ей.</p><p>Как запихать в файл строку <strong>http://[\&quot;]+</strong> с помощью win-echo я ума не приложу. Проблема в том, что на конце появляются символы окончания строки и перевода каретки, а они все портят.</p>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Mon, 03 Feb 2020 10:33:50 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137632#p137632</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137631#p137631</link>
			<description><![CDATA[<p><strong>DnsIs</strong><br /></p><div class="codebox"><pre><code>egrep -o &quot;http://[^^^&quot;]+&quot; text.txt</code></pre></div><p>^ - это символ экранирования</p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Mon, 03 Feb 2020 09:50:21 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137631#p137631</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137630#p137630</link>
			<description><![CDATA[<p>Пробовал. ) Не то пальто.</p>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Mon, 03 Feb 2020 07:48:14 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137630#p137630</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137628#p137628</link>
			<description><![CDATA[<p>Подскажу, но очень неуверенно. Вместо</p><div class="codebox"><pre><code>\&quot;</code></pre></div><p>попробуйте</p><div class="codebox"><pre><code>&quot;&quot;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Mon, 03 Feb 2020 07:38:03 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137628#p137628</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: Grep и кавычки в регулярном выражении [win].]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137627#p137627</link>
			<description><![CDATA[<p>Доброго дня.</p><p>Для поиска обрамленных кавычками ссылок в файле, мне кажется самый простой код такой (важно! все происходит в win):<br /></p><div class="codebox"><pre><code>egrep -o &quot;http://[^\&quot;]+&quot; text.txt</code></pre></div><p>Но вот загвоздка: в регулярном выражении используется кавычка, она хоть и экранирована, но все равно ломает мозг cmd.exe.<br />По-первых не работает авто-дополнение по TAB<br />Во-вторых не работает перенаправление вывода как &quot;&gt;&quot;, так и &quot;|&quot;</p><p>Задачи бывают разные и если сделать целью не изменение регулярки для избавления от кавычки, то какой есть выход из такой ситуации?</p>]]></description>
			<author><![CDATA[null@example.com (DnsIs)]]></author>
			<pubDate>Mon, 03 Feb 2020 07:33:19 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137627#p137627</guid>
		</item>
	</channel>
</rss>
