Советы по работе с базами. Не mysql :)

September 19, 2008 · Написано в Без категории 

Сегодня пол дня убил на предварительную очистку текстовой базы для нужных дел :)

Апостер долго дуплил при очистке от дублей и умирал в браузере по таймауту (к слову сказать Форбидден решил эту проблему выпустив вечером апдейт).

Пришлось вспоминать/искать решения как это сделать из шела.

Итак, очистить текстовую базу от дубликатов можно так:

cat file.txt|sort|uniq > filesort.txt

Работает очень быстро. Просто офигительно быстро.

Далее мне понадобилось удалить ненужные строки в которых в урлах встречаются ftp:// , .pdf, .doc и т.д.   Немного погуглив я решил заюзать Яндекс. Он умеет искать не хуже гугля! :)) (давно его не использовал).

Решение с помощью потокового редактора sed

Пример: Найти в файле file строки, содержащие шаблон ftp: и удалить их.

sed -e /ftp:/d file.txt

Этот редактор по-моему как и mc стоит по дефолту на большинстве *nix

Работает не так быстро. Но база у меня была около 1 ляма. Советую запускать долгоиграющие задания в шеле в скрине. Это мега полезная вещь. Можно не опасаться выключения компа, пропадания интернета и т.п.  В общем это нечто вроде фонового процесса.

Юзаем так:

В шеле: screen и тыц enter

Вот мы в скрине. Запускаем нужное задание и прижмая ctrl нажимаем A и D по очереди - отцепляемся от скрина.  Теперь можно выйти из удалённого шела, выключить тачку и пойти гулять :)

Когда нужно вернуться в скрин проверить как там наше задание набираем screen -x

Выйти вообще из скрина и завершить его работу - стандартное ctrl+D

Комментарии

4 Отзывов на “Советы по работе с базами. Не mysql :)”

  1. Lovec on September 20th, 2008 3:11 pm

    cat file.txt|sort|uniq > filesort.txt
    это делается одной командой:
    sort -u file.txt > filesort.txt

  2. dem0kratizat0r on September 20th, 2008 5:36 pm

    а у меня сколько ? :)

  3. Kolo on September 21st, 2008 8:51 pm

    Для быкграунда можно просто в конце написать &. Типа того:

    sed -e /ftp:/d file.txt > parsed.txt &

  4. dem0kratizat0r on September 21st, 2008 10:36 pm

    И как ты вернёшся потом и проверишь чем закончился процесс ? :)
    Или может мне, например, аську надо запустить в шеле, чтобы висела постоянно.
    Не, в данном случае screen по-моему более удобен.

Оставить отзыв