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

September 19, 2008 · Filed Under Без категории · 4 Комментариев 

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

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

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

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

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