Советы по работе с базами. Не mysql :)
Сегодня пол дня убил на предварительную очистку текстовой базы для нужных дел
Апостер долго дуплил при очистке от дублей и умирал в браузере по таймауту (к слову сказать Форбидден решил эту проблему выпустив вечером апдейт).
Пришлось вспоминать/искать решения как это сделать из шела.
Итак, очистить текстовую базу от дубликатов можно так:
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 :)”
Оставить отзыв



cat file.txt|sort|uniq > filesort.txt
это делается одной командой:
sort -u file.txt > filesort.txt
а у меня сколько ?
Для быкграунда можно просто в конце написать &. Типа того:
sed -e /ftp:/d file.txt > parsed.txt &
И как ты вернёшся потом и проверишь чем закончился процесс ?
Или может мне, например, аську надо запустить в шеле, чтобы висела постоянно.
Не, в данном случае screen по-моему более удобен.