Найти строку во всех файлах в системе - PullRequest
1 голос
/ 04 октября 2010

Используя PHP, как найти все файлы во всей системе (я использую Ubuntu), которые содержат строку errorlog.Я пробовал exec() и grep, но это происходит только один раз.Спасибо.

Ответы [ 3 ]

1 голос
/ 04 октября 2010

Вы можете использовать grep -R "errorlog" / для рекурсивного поиска во всех файлах в системе строки 'errorlog'.Используйте команду php exec , чтобы сделать это из php.

1 голос
/ 04 октября 2010

Вы имеете в виду на серверах / *; или просто структура подкаталогов?

Звучит так, будто вы хотите использовать shell, чтобы найти.

http://www.athabascau.ca/html/depts/compserv/webunit/HOWTO/find.htm#EX03

(ищет pwd; я бы посмотрел на -maxdepth по соображениям производительности)

find . -exec grep "www.athabasca" '{}' \; -print
1 голос
/ 04 октября 2010

хорошо, с использованием php потребуется подпрограмма, которая обходит всю систему, например, рекурсивно, открывать каждый файл с определенным окончанием, а затем обойти этот файл и просмотреть каждую строку на предмет появления строки, а при поиске строки просто сохранить это где-то.

Кстати, PHP - не лучший кандидат для поиска во всей системе появления определенной строки. Если возможно, я бы предпочел использовать другой язык, который немного быстрее при работе с системой рядом с задачами.

В Windows я использую Notepad ++ в качестве инструмента для поиска в определенной папке со всеми ее подпапками всех вхождений определенной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...