1

Я пытаюсь использовать команду find в сочетании с grep, чтобы найти все файлы php на моем веб-сервере, в которых есть слово (любая последовательность символов, кроме пробелов), содержащее более 50 символов.

У меня есть эта база:

find . -name '*.php' -exec fgrep -q '.{50}' {} \; -print

Но не работает, как ожидалось.

Спасибо

1 ответ1

0

. обозначает все, кроме символов новой строки, включая пробелы и символы табуляции. Вот почему ваше регулярное выражение будет соответствовать строкам длиннее 50 символов.

Чтобы сопоставить слова длиной не менее 50 символов, вы можете использовать что-то вроде этого:

[^\s]{50}

[^\s] соответствует всему, кроме пробельных символов. {50} означает, что последовательность из 50 таких (не обязательно идентичных) символов будет сопоставлена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .