Ru-Board.club
← Вернуться в раздел «UNIX»

» Многострочный поиск + регулярные выражения (PCRE)

Автор: SergeyKulikov
Дата сообщения: 08.09.2011 09:29
Здравствуйте Помогите, пожалуйста, решить мою проблему.

Задача:
1) В папке uploads найти все файлы с расширением jpg
2) В найденных файлах из пункта 1) найти все вхождения: <? любой код ?>
3) Вывести на экран название файлов с путями, где были найдены вхождения из пункта 2)

Вот тут пример, какие вхождения должно находить: http://regexr.com?2uklt




Пробовал так:
1) find /путь/uploads -name "*.jpg" | xargs grep -Eoi "<\?.*?\?>"

Но я не знаю, как egrep-у дать понять, чтобы он искал не только: <? что-то ?> но также, чтобы искал и:
<?
что-то
?>


То-есть я не знаю, как ему передать ключики gs

***********************************************

2) find /путь/uploads -name "*.jpg" | xargs perl -pe "m|<\?.*?\?>|gis"

В этом примере тоже что-то не так сработало. Ключик -p просто выводит на экран все, где был поиск.
Без ключа -p вообще никогда ничего не выводит Очень надеялся на этот способ. Всё-таки напрямую через perl делается поиск.







Также поиск по регулярным выражениям есть в программах:

find - не понял, как тут сделать поиск по регулярным выражениям. Ключ -regex меня почему-то не слушает или не понимает

Midnight Commander - тут тоже есть регулярные выражения, но как сделать многострочный поиск не понимаю. Тоже очень надеялся на этот способ.

FAR - тоже самое что и с Midnight Commander (тоже надеялся и тоже не получилось)

notepad++ - тут тоже есть поиск по регулярным выражениям, правда уже POSIX (но тоже не получилось сделать многострочный поиск)











Очень прошу! Помогите решить эту проблему.

Добавлено:
Ключи:
s - Позволяет интерпретировать конец строки, как обыкновенный символ-разделитель.
m - Многострочный режим, позволяющий находить совпадения в начале или конце строки, а не всего текста.
i - Поиск без учета регистра.
g - Применять выражение глобально, т.е. сколько раз встретилось, столько и сработало
Автор: Alukardd
Дата сообщения: 08.09.2011 13:57
SergeyKulikov
Первое на что стоит обратить внимание это на свою внимательность и/или зрение - UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;. Не надо попусту темы плодить...

Постараюсь ответить в указанной теме.

Страницы: 1

Предыдущая тема: Не могу настроить IPFW+ipnat


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.