Необходимо проверить grep -c
, это делает точно, что Вы описываете. При необходимости в большей гибкости Вы могли бы, вероятно, использовать awk
. Попробуйте что-то вроде этого (введенный непосредственно в браузере и не протестированные):
dir=$1
# add tests to check if $1 exists (-d) and/or is non null (-n)
find "${dir}" | awk <<\EOF
BEGIN {
pat1 = 0;
pat2 = 0;
...
}
/pattern/ { pat1 += 1;}
/otherpattern/ {pat2 += 2;}
...
END {
print "pattern", pat1;
print "otherpattern", pat2;
...
}
EOF
Я оставлю его до Вас для разработки деталей find
команда или awk
сценарий.
Можно попытаться настроить сам сценарий с помощью set_time_limit()
и расширитесь как свободные, см. документ по http://www.php.net/manual/en/function.set-time-limit.php
ini_set()
вызовы. Кроме того, проверьте свои журналы сервера на то, что может быть полезной информацией, когда попытки перестали работать. – DopeGhoti 12.01.2014, 09:55