RegEx в awk и WinGrep

Итак, я ищу такой шаблон:

size='0x0'

В файле журнала, но меня интересуют только большие размеры (4 цифры и более). Следующее регулярное выражение отлично работает в EditPadPro (хороший инструмент, кстати)

size='0x[0-9a-fA-F]{4,}

Но тот же RegEx не работает в awk - похоже, повторение {4,} все портит. То же самое с WinGrep - есть идеи от гуру RegEx? Спасибо!

Если ответ @adamalex сработал, вы должны пометить его как правильный, как для его пользы, так и для следующего человека, которому нужен ответ на этот вопрос.

Ben Doom 07.11.2008 00:03

Вы можете использовать PowerGREP вместо WinGrep, поэтому вы будете работать с тем же механизмом регулярных выражений, что и в EditPad Pro.

Jan Goyvaerts 11.11.2008 12:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
2
1 416
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я не знаю элегантных альтернатив синтаксису {4,}, но если он не работает в желаемой вами среде, вы можете прибегнуть к этой уродливой хитрости:

size='0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]+

Надеюсь это поможет!

Адам

хороший - уродливый хакер сработал отлично, и это то, что важно, не так ли? Для меня приятно было изучить новый инструмент, а не писать еще одно приложение C!

Jeff 06.11.2008 22:12

Не забывайте последний апостроф.

'
Ответ принят как подходящий

Фактически, вы можете использовать awk, но с одной оговоркой.

Как упоминалось на следующей странице, вам понадобится специальный параметр командной строки (--re-interval), чтобы это работало, поскольку выражение интервала ({4,}) не входит в стандарт:

http://kansai.anesth.or.jp/gijutu/awk/gawk/gawk_28.html

Итак, в конце концов, вам понадобится что-то похожее на:

awk --re-interval "/size='0x[0-9a-fA-F]{4,}'/" thefile

Это распечатает совпадающие строки.

Это не «awk»; это GNU 'gawk', но это не единственная версия. Сказав это, в Windows awk, скорее всего, от GNU, тем более что это был принятый ответ, но он не был автоматическим (я считаю, что у MKS есть версия awk).

Jonathan Leffler 07.11.2008 02:03

Учитывая повсеместное распространение утилит GNU, я подумал, что это, по крайней мере, хорошее место для начала. И поскольку это сработало, похоже, мое предположение было правильным. ;-)

Dan Fego 07.11.2008 05:18

Другие вопросы по теме