Nowe posty

Autor Wątek: skrypt wyszukujący ...  (Przeczytany 5429 razy)

DeX-cRee

  • Gość
skrypt wyszukujący ...
« dnia: 2008-05-16, 11:56:41 »
Witam, mam pytanie czy moglby mnie ktos nakierowac... wspomoc w napisaniu sktyptu ktory by:

w katalogu
/home/dex/pvpgn/var/users

[w katalogu users znajduja sie acc wszystkich graczy]

przeszukiwal wszystkie acc jakie tam sie znajduja i na jednej stronie pokazal mi tę ip + nazwe acc, a jeszcze lepiej jakby pokazywalo nazwe acc + ip z tej linijki, ale tylko te ktore mają logowanie na wiecej niz jednym acc.

"BNET\\\\acct\\\\lastlogin_ip"="89.76.68.26" - to jest linijka z IP

---
za pomoc z gory dziekuje.

arctgx

  • Gość
skrypt wyszukujący ...
« Odpowiedź #1 dnia: 2008-05-16, 12:06:51 »
NIe wiem czy dobrze zrozumiałem problem, ale pierwsza rzecz, która mi się nasunęła, to  tablice asocjacyjne w awk.

Nie mam pojęcia, o jakiej gierce piszesz i co to są "acc". Mogę się jednak domyślać (z braku wyjść), że acc w takiej linijce to pierwsze lub drugie pole przy separatorze "\\\\" ;).

Ale może istnieć jeszcze prostsze rozwiązanie. Zobacz co oferuje polecenie sort.

DeX-cRee

  • Gość
skrypt wyszukujący ...
« Odpowiedź #2 dnia: 2008-05-16, 19:57:15 »
tzn tak, acc = account = konto, w katalogu /home/dex/pvpgn/var/users znajduja sie pliki tekstowe, [o nazwie konta uzytkownikow]

i wlasnie w kazdym z tych plikow znajduje sie linijka
"BNET\\\\acct\\\\lastlogin_ip"="89.76.68.26"
ktora pokazuje ostatnie logowanie na dane konto[acc], i chcialbym jakis skrypcik zeby pokazywalo mi nazwy kont na ktore bylo logowanie z wiecej niz jednego IP [+ pokazalo jakie to konta]

wie ktos jak to zrobic ?;]

arctgx

  • Gość
skrypt wyszukujący ...
« Odpowiedź #3 dnia: 2008-05-16, 21:19:30 »
Linijka i nic więcej? Wtedy za pomocą cat * połączyłbym pliki w jeden i spróbował podziałać na nim awk-iem tak, by jednym z pól był adres IP.

Czyżby tak:

awk -F\\= '{ilosc[$2] += 1} END {for (gracz in ilosc) {if (ilosc[gracz]>1) {print gracz, "jest", ilosc[gracz], "razy zalogowany"}} }' /home/dex/pvpgn/var/users/*
?

DeX-cRee

  • Gość
skrypt wyszukujący ...
« Odpowiedź #4 dnia: 2008-05-17, 08:15:33 »
moglbys mi caly napisac? to bym mial wzor do kolejnych skryptow, bo nigdy nie pisalem a na wzor tego i tak jeszcze 2 bede musial sobie dopisac;]

arctgx

  • Gość
skrypt wyszukujący ...
« Odpowiedź #5 dnia: 2008-05-17, 11:51:19 »
Cytat: DeX-cRee
moglbys mi caly napisac? to bym mial wzor do kolejnych skryptow, bo nigdy nie pisalem a na wzor tego i tak jeszcze 2 bede musial sobie dopisac;]
Jasne.. I dwa następne...

Sprawdzałeś chociaż jak działa ten i czy robi to, co chcesz?

Sorki, ale połączenie braku informacji o działaniu i dziwna prośba dają mi wrażenie rozleniwienia do tego stopnia, że nie chce Ci się nawet zobaczyć jak działa coś, co dostałeś na gotowo.

A jeśli nigdy nie pisałeś, czas zabrać się za lekturę materiałów: gotowych tutoriali oraz podręczników awk i bash.

DeX-cRee

  • Gość
skrypt wyszukujący ...
« Odpowiedź #6 dnia: 2008-05-17, 13:13:08 »
no luz.. to jak mozesz zapodaj nazwe jakiegos dobrego podrecznika to wtedy sobie poradze

arctgx

  • Gość
skrypt wyszukujący ...
« Odpowiedź #7 dnia: 2008-05-17, 14:05:06 »
Sam uczyłem się dawno temu z jakiegoś papierowego podręcznika po polsku z połowy lat 90-tych i nie wiem jak się on zwie. Ale wątpię, by w sieci brakowało dobrych przykładów, od których można by zaczynać, uzupełniając wiedzę lekturą man awk. Na przykładzie, który Ci dałem, możesz w połączeniu z lekturą sam łapać, czym jest tutaj -F, $2 itp.