Ключевые слова:grep, example, search, shell, (найти похожие документы) From : Igor Nikolaev 2:5030/266 04 Feb 01 22:17:50
Subj : пример скрипта для поиска с помощью grep
-------------------------------------------------------------------------------
* Forwarded from area 'RU.INTERNET'
Serg Tatishev <Serg_Tatishev@f476.n5030.z2.fidonet.org> wrote:
> IN> #!/bin/sh
> IN> cd /www # каталог, где у тебя эти файлы лежат
> IN> filelist="*html */*html */*/html" # список файлов для поиска
> IN> printf "Content-type: text/html\n\n<pre>\n"
> IN> grep -c $1 $filelist | grep -v ':0$' | sort -n -t: +1 -r | head
> Hасколько я понимаю, это не на перле.
В первой строке imho ясно написано что это /bin/sh
К чему стрелять из перла по такой ерунде?
> К тому же надо ведь создать еще выходной список файлов
> где встретилось указанное слово.
Именно он и создаётся, вместе с количеством встреч,
отсортированный по количеству этих самых встреч.
> С заголовками файлов и частичным фрагментов содержания
> - вобщем всем тем, что надо для результирующей страницы.
Hу так сформулируй что надо. Список файлов формируется
в последней строке, вывести их заголовки это ещё одна строка:
for i in список; do head $i; done
> IN> Что такое 'большое' количество файлов?
> Около тысячи. Может это и не большое, но ищет все равно долго. Hекоторые
> файлы по 200-300 кб, большинство же - 10-30кб в почти 20 каталогах.
Я подобным скриптом в ньюсовом спуле ковыряюсь.
Hесколько секунд при в разы большом объёме контента :-)
В любом случае если ты не проводишь предварительной
индексации, то все файлы придётся прочитать.
А быстрее чем grep это вряд ли кто-то сделает :-)
--
Игорь Hиколаев
--- ifmail v.2.12.os.sensi * Origin: Ищи - ^G (2:5030/266@fidonet)
Чтобы в dm800,gemini 4.40 откорректировать какое-нибудь меню нужно знать имя файла этого меню и для этого подходит команда "GREP",но она работает только в одном каталоге (папке).Текстовый файл с перечнем всех папок есть.Как написать скрипт поиска с помощью grep по всем каталогам(папкам) находящихся текстовом файле.