Пишем альтернативный поиск по истории переписки в Pidgin
Итак, для начала скажу что я меньше месяца в линуксе, и естественно, пока что ламер. Поэтому предоставляю не столько код, сколько идею.
Многие мои знакомые (да и я сам) недовольны странно реализованным способом поиска в истории по ключевым словам. Хочется чего-то более удобного.
Этот элементарнейший bash-скрипт позволяет нам автоматически проискать всю историю переписки с определенным человеком, сгенерировать на ее основе HTML документ содержащий строки с искомым ключевым словом и открыть его для просмотра. Я не хотел публиковать этот позор, но друзья сказали, что это очень удобная штука...
Пользуйтесь, делайте что хотите, изменяйте, улучшайте, доведите до ума, делайте из фекалий кондитерское изделие. :) Критика приветствуется, улучшения КРАЙНЕ приветствуются. Особая просьба пофиксить костыль в коде, он заметен. А все от незнания.
#!/bin/bash #Pidgin history search by William Meth #best viewed with VIM =) if test -z "$1" & test -z "$2"; then echo 'Sy: histgrep icq_number 'searchword' output_filename' exit 1 fi if [ -z $3 ]; then FILE="$HOME/Выхлопы/$2.html" #выходный файл else FILE="$HOME/Выхлопы/$3.html" fi DIR="$HOME/Выхлопы/" #выходная директория OWNER="478336342" #сюда вставьте свой номер аси #---------------------------------------------------------------------------- if [[ -e $DIR ]]; then #исправь меня, я дебильная проверка echo 'йа_костыль' > /dev/null else mkdir $DIR fi #---------------------------------------------------------------------------- #добавляем чтобы правильно определял кодировку echo '<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">' > $FILE #собственно процедура поиска cat $HOME/.purple/logs/icq/$OWNER/$1/* | grep -i $2 >> $FILE firefox $FILE #заменяем на любимый броузер exit 0
- 1865 просмотров
Страница для печати

прикольно. но не понял смысла этого решения. у пидгина очень неплохой поиск по истории.
более того, недавно выяснил: оказывается не надо искать контакт в контактлисте, чтобы посмотреть историю -- Собеседники -> Посмотреть журнал пользователя -- а дальше набираем ник пользователя.
неплохо для первого раза. вот улучшеная версия.
непонятно правда кто такое William Meth Ж:-)
Полностью согласен с ramok. :)
Но я бы mkdir все же воткнул в тело if else, что бы не делать лишней проверки. ;)
patch:
не подойдет. в if проверка $SDIR, а создается $DIR. это разные директории
Рады что откликнулись) Уильям Мет это я) Приятно познакомиться)) Точнее, мой творческий псевдоним.
Улучшения приняты, но все же настоял бы на cat | grep формате... Просто из-за того что grep, вызванный сам по себе вначале выдает адрес файла из которого взято и он достаточно длинный чтобы сделать выводной формат файла практически нечитабельным. cat | grep избавляет от этого недостатка. Еще похоже в процессе улучшения утрачен функционал сохранения в произвольное место, но он не слишком-то нужен. Потом попробую подвести итоги, переработать еще немного код. Пока подожду еще интересных идей.
> Приятно познакомиться))
приятно Ж:-)
> е... Просто из-за того что grep, вызванный сам по себе вначале выдает адрес файла из которого взято
$ man grep ... -h, --no-filename Suppress the prefixing of file names on output. This is the default when there is only one file (or only standard input) to search.подправил
> Еще похоже в процессе улучшения утрачен функционал сохранения в произвольное место, но он не слишком-то нужен.
было не "сохранение в произвольное место, а "сохранение под произвльным именем". это и осталось
Ладно, поправлено. Для большей благозвучности предлагаю привести окончательные параметры к виду
grep -hui 'запрос'
Отправить комментарий