Здравствуйте Помогите, пожалуйста, решить мою проблему.
Задача:
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 - Применять выражение глобально, т.е. сколько раз встретилось, столько и сработало
Задача:
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 - Применять выражение глобально, т.е. сколько раз встретилось, столько и сработало