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

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

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

Postby Kerberos464 » Tue 28 Apr, 2015 14:41

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

пытаюсь разобраться, почему 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: 4909
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 118 times

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

Postby Shmuel » Tue 28 Apr, 2015 15:58

Kerberos464 wrote:Source of the post запускаю так:
grep -E -o -f pattern.txt file.html

Используйте -P вместо -E.

User avatar
HaRT
Moderator
Posts: 7880
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 62 times
Been thanked: 93 times

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

Postby HaRT » Tue 28 Apr, 2015 16:03

Kerberos464,
На версии 2.5.1 воспроизводится.
Если вместо -E (--extended-regexp) указать -P (--perl-regexp), то работает так, как хочется.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Kerberos464
Posts: 1236
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 17 times
Been thanked: 1 time

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

Postby Kerberos464 » Tue 28 Apr, 2015 16:16

с ключом -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: 1236
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 17 times
Been thanked: 1 time

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

Postby Kerberos464 » Tue 28 Apr, 2015 16:22

с версией 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 - весь фар перестал работать.


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

Who is online

Users browsing this forum: No registered users and 1 guest