grep для windows - помогите разобраться

Здесь обсуждаются темы, косвенно связанные с Far.
Post Reply
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

grep для windows - помогите разобраться

Post by Kerberos464 »

добрый день всем!

пытаюсь разобраться, почему grep для windows работает не так, как я ожидаю.

в общем, задача - из определённого html-файла вырезать куски, согласно регулярному выражению.
есть такой фрагмент html-файла (упрощён для компактности):

Code: Select all

<br/> <div id="pid_84740" style="padding:5px 0 5px 0"> this is the test message. </div> <div style="text-align:right;vertical-align:bottom" id="post_meta_84740"> <div id="edited_by_84740"></div> </div>
и есть регулярное выражение:

Code: Select all

<div id="pid_[0-9]*" style="padding:5px 0 5px 0">.*?<\/div>
нужно вырезать "this is the test message." до первого /div, однако grep захватывает строку до последнего /div

grep версии 2.5.4, последний отсюда: http://gnuwin32.sourceforge.net/packages/grep.htm
запускаю так:
grep -E -o -f pattern.txt file.html
(регулярное выражение находится в pattern.txt, чтобы не было проблем с экранированием в командной строке)
пробовал без -E , но тогда не находится вообще ничего.

в редакторе фара данное регулярное выражение находит именно то, что мне надо, на http://regexr.com/ тоже всё ок.

заранее спасибо за помощь!
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

grep для windows - помогите разобраться

Post by Shmuel »

Kerberos464 wrote: запускаю так:
grep -E -o -f pattern.txt file.html
Используйте -P вместо -E.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

grep для windows - помогите разобраться

Post by HaRT »

Kerberos464,
На версии 2.5.1 воспроизводится.
Если вместо -E (--extended-regexp) указать -P (--perl-regexp), то работает так, как хочется.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

grep для windows - помогите разобраться

Post by Kerberos464 »

с ключом -P выдаёт:
grep.exe: The -P option only supports a single pattern

буду искать версию 2.5.1
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

grep для windows - помогите разобраться

Post by Kerberos464 »

с версией 2.5.1 вроде работает как надо.
регресс налицо =)

всем спасибо!
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
Post Reply

Return to “Операционные системы, командные оболочки и прочее”