W dniu 2011-03-11 22:48, Dominik "Socek" Długajczyk:

Trochę zbaczam z tematu (i robię mały spam), ale czy próbowałeś mojego
programu do czytania logów?

http://socek.org/gh/

Nie wiem, czy rozwiązuje Twoje problemy, ale mam nadzieję, że tak.

Do logów właściwie napisałem swój własny skrypt wykorzystujący dołączone do ekg 'ekglogs'. Jest w załączniku, gdyby ktoś był zainteresowany. Opinie również mile widziane.
#!/bin/bash

logfile=""
lessarg="less -FR"
if [ "$logfile" == "" ]; then
  echo
  echo 'Najpierw edytuj ten skrypt i wpisz do zmiennej logfile (na samej górze) 
¶cie¿kê do twojego pliku z archiwum ekg. Standardowo ~/.gg/history'
  echo
  exit 1
fi

if [ "$#" -lt 1 ]; then
  echo
  echo -e "Sposób u¿ycia: ekgl 
<\033[1;38mmsg\033[0;0m|\033[1;38mst\033[0;0m|\033[1;38msta\033[0;0m|\033[1;38mstb\033[0;0m|\033[1;38mstn\033[0;0m|\033[1;38mign\033[0;0m|\033[1;38mall\033[0;0m>
 [\033[1;38mnick\033[0;0m]"
  echo
  echo -e "\033[1;38mmsg\033[0;0m - wy¶wietla tylko wiadomo¶ci"
  echo
  echo -e "\033[1;38mst\033[0;0m - wy¶wietla tylko informacje o zmianach 
statusu (wszystkich)"
  echo
  echo -e "\t\033[1;38msta\033[0;0m - wy¶wietla tylko informacje o zmianach 
statusu na dostêpny"
  echo
  echo -e "\t\033[1;38mstb\033[0;0m - wy¶wietla tylko informacje o zmianach 
statusu na zaraz wracam"
  echo
  echo -e "\t\033[1;38mstn\033[0;0m - wy¶wietla tylko informacje o zmianach 
statusu na niedostêpny"
  echo
  echo -e "\033[1;38mign\033[0;0m - wy¶wietla tylko wiadomo¶ci od osób 
zignorowanych"
  echo
  echo -e "\033[1;38mall\033[0;0m - wy¶wietla ca³e archiwum"
  echo
  echo -e "\033[1;38mnick\033[0;0m - argument opcjonalny; wy¶wietla 
wiadomo¶ci/informacje o zmianach statusu tylko od podanego nicka"
  echo
  exit 1
fi
if [ "$1" == "lign" ]; then
  echo; echo $(awk -F ';' '/__offline/ { print $4 }' .gg/userlist); echo
fi

if [ "$1" == "ign" ]; then
  if [ "$#" -lt 2 ]; then
    grep -E '(msgrecvign|chatrecvign)' $logfile | ekglogs -xrRsSCac | $lessarg
  else
    grep -E '(msgrecvign|chatrecvign)' $logfile | ekglogs -xrRsSCac -n "$2" | 
$lessarg
  fi
fi

if [ "$1" == "msg" ]; then
  if [ "$#" -lt 2 ]; then
    grep -v ^status $logfile | ekglogs -xrRsSCac | $lessarg
  else
    grep -v ^status $logfile | ekglogs -xrRsSCac -n "$2" | $lessarg
  fi
fi

if [ "$1" == "st" ]; then
  if [ "$#" -lt 2 ]; then
    grep ^status $logfile | ekglogs -xrRsSCc | $lessarg
  else
    grep ^status $logfile | ekglogs -xrRsSCc -n "$2" | $lessarg
  fi
fi

if [ "$1" == "sta" ]; then
  if [ "$#" -lt 2 ]; then
    grep ^status $logfile | grep ',avail$' | ekglogs -xrRsSCc | $lessarg
  else
    grep ^status $logfile | grep ',avail$' | ekglogs -xrRsSCc -n "$2" | $lessarg
  fi
fi

if [ "$1" == "stb" ]; then
  if [ "$#" -lt 2 ]; then
    grep ^status $logfile | grep ',busy$' | ekglogs -xrRsSCc | $lessarg
  else
    grep ^status $logfile | grep ',busy$' | ekglogs -xrRsSCc -n "$2" | $lessarg
  fi
fi

if [ "$1" == "stn" ]; then
  if [ "$#" -lt 2 ]; then
    grep ^status $logfile | grep ',notavail$' | ekglogs -xrRsSCc | $lessarg
  else
    grep ^status $logfile | grep ',notavail$' | ekglogs -xrRsSCc -n "$2" | 
$lessarg
  fi
fi

if [ "$1" == "all" ]; then
  if [ "$#" -lt 2 ]; then
    cat $logfile | ekglogs -xrRsSCc | $lessarg
  else
    cat $logfile | ekglogs -xrRsSCc -n "$2" | $lessarg
  fi
fi

Odpowiedź listem elektroniczym