LINUX.ORG.RU

[bash] Простая поисковая система.


0

2

Набросал тут за вечер. На основе wget --spider.
Бот - парсит html и проверяет не проиндексированы ли уже ссылки. Кусок бота, который проверяет, чтобы сохраненные ссылки не повторялись. Клиентская часть.
Короче, скачивается html странички, с помощью wget --spider и утилит для обработки текста выдергиваются ссылки, направляются в файл. Потом в этом файле, в цикле, каждая ссылка проверяется с другой, находятся одинаковые и файл редактируется. Код еще сыроват и полностью программа не заработала, но по отдельным частям проверял. Потом будет выдергиваться краткая информация о страничке и заноситься в индексы в два столбика - ссылка и описание. Вводим в клиенте искомое и выдается ссылка. Это все должно автоматически быть. ЧЯДНТ? Может чего посоветуете? :)

> ЧЯДНТ? Может чего посоветуете?

Сменить bash на Perl/Python/Ruby.

Простая поисковая система.

Зачем оно нужно?

geekless ★★ ()
Ответ на: комментарий от anonymous

> не использовать баш.
Ты думаешь я серьезно программирую? Для закрепления материала: «Программирование на баш» - домашнее задание :)

Phaser ()
Ответ на: комментарий от Phaser

Для закрепления материала: «Программирование на баш» - домашнее задание

    lines=`wc -l ~/Bot/links | awk '{print $1}'`
    for a in `seq 0 $lines`;do
        line=$a"p"
        link=`sed -n $line ~/Bot/links`

Какой-то кромешный ужас.

geekless ★★ ()

подучив awk можно переписать в 3 раза короче, но это уже задротство.
Забей, теперь это пройденный этап.

zolden ★★★★★ ()
Ответ на: комментарий от zolden

Слушай, можно как-то присвоить переменной значение из нескольких строк в столбец? И потом выуживать оттуда по одной и давать её выхлоп.

Phaser ()
Ответ на: комментарий от Phaser

Можно, отчего ж не можно...
Но для начала, чтобы сэкономить время на объяснения придётся перейти на нормальный шелл (и это не bash)

%>cat tst                                                                                                                                                                 
1
2
3
4
%>myvar=$(cat tst)                                                                                                                                                                                   
%>echo ${myvar}                                                                                                                                                                                      
1
2
3
4
%>echo ${myvar:2:1}
2
хотя это баловство какое-то, лучше сразу массив использовать

но сдаётся мне ты на самом деле задачу неправильно сформулировал

zolden ★★★★★ ()
Ответ на: комментарий от zolden

> Но для начала, чтобы сэкономить время на объяснения придётся перейти на нормальный шелл (и это не bash)
Чем вам всем баш не нравиться?

Phaser ()
Ответ на: комментарий от zolden

Ты думаешь, повернуть аватарку на 90 градусов оригинально?

Phaser ()
Ответ на: комментарий от Phaser
$ time ( find /usr/include -name \*.h -exec grep printf /dev/null >| /dev/null {} \; )
Real: 4,89s User: 1,41s System: 3,46s CPU-percent: 99%
$ time ( zargs /usr/include/**/*.h -- grep printf /dev/null >| /dev/null )
Real: 0,27s User: 0,14s System: 0,14s CPU-percent: 102%

у меня не очень с английским, поэтому на просто на цифры укажи где там субъективные доводы

zolden ★★★★★ ()
Ответ на: комментарий от zolden

Ты из тех, кто определяет нужность языка следующей последовательностью действий:

time ruby helloworld.rb 
Или чем-то наподобие. Подружись с babusha, Вы найдете много общего.

Phaser ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.