Я пытаюсь использовать find в сочетании с grep, чтобы найти все php-файлы на моем веб-сервере, в которых есть слово (любая последовательность символов, кроме пробелов) длиной более 50 символов.
У меня есть такая база:
find . -name '*.php' -exec fgrep -q '.{50}' {} \; -print
Но работает не так, как ожидалось.
Спасибо
решение1
.
обозначает все, кроме символов новой строки, включая пробелы и табуляции. Вот почему ваше регулярное выражение будет соответствовать строкам длиннее 50 символов.
Чтобы найти слова длиной не менее 50 символов, можно использовать что-то вроде этого:
[^\s]{50}
[^\s]
соответствует всему, кроме пробельных символов. {50}
означает, что будет сопоставлена последовательность из 50 таких (не обязательно идентичных) символов.