Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pišemo zajedno: ES oneliner #0001

[es] :: Skript jezici :: Pišemo zajedno: ES oneliner #0001

Strane: 1 2 3

[ Pregleda: 8740 | Odgovora: 43 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+165 Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 19:45 - pre 238 meseci
PHP resenje ne radi, popeye:


root@es:~# netstat -nat | php -r 'print_r(array_count_values(preg_grep("/^[A-Z_]+[12]*$/", preg_split("/[\s]+/", fread(STDIN, 5000)))));'
Array
(
[ESTABLISHED] => 24
[TIME_WAIT] => 37
[FIN_WAIT_1] => 1
)
root@es:~# netstat -nat|perl -e '/[A-Z_]{2,}[12]?/&&$*{$&}++while<>;@^=keys%{*};print"$*{$*=pop@^} $*\n"while$#{^}>=0'
39 LISTEN
1 UNIX
200 ESTABLISHED
37 FIN_WAIT_2
14 CLOSED
4 FIN_WAIT_1
484 TIME_WAIT
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+165 Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 19:49 - pre 238 meseci
Evo bzero-ovog, radi na freebsd-u (perl 5.8.5):

root@es:~# netstat -nat|perl -e '/[A-Z_]{2,}[12]?/&&$*{$&}++while<>;@^=keys%{*};print"$*{$*=pop@^} $*\n"while$#{^}>=0'
1 UNIX
39 LISTEN
190 ESTABLISHED
1 LAST_ACK
14 CLOSED
32 FIN_WAIT_2
7 FIN_WAIT_1
454 TIME_WAIT
root@es:~# netstat -nat|perl -e '/([A-Z_]{2,}[12]*)\n/&&$u{$1}++while<>;map{print"$_-$u{$_}\n"}keys(%u);'
TIME_WAIT-458
FIN_WAIT_1-8
CLOSED-14
FIN_WAIT_2-33
LAST_ACK-1
ESTABLISHED-186
LISTEN-39


..ali ne i na linuxu (perl 5.8.4):

root@noc {20:48:43 - Thu Sep 23}
[ ~ ]$ netstat -nat|perl -e '/[A-Z_]{2,}[12]?/&&$*{$&}++while<>;@^=keys%{*};print"$*{$*=pop@^} $*\n"while$#{^}>=0'
8 LISTEN
17 ESTABLISHED
1 CLOSE_WAIT
1 TIME_WAIT
root@noc {20:48:52 - Thu Sep 23}
[ ~ ]$ netstat -nat|perl -e '/([A-Z_]{2,}[12]*)\n/&&$u{$1}++while<>;map{print"$_-$u{$_}\n"}keys(%u);'
ESTABLISHED-17


Ispise samo established, verovatno si i ti popeye to dobio.
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+165 Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 19:51 - pre 238 meseci
Ali bzero, svaka cast za ideju sa map! :)
Sad sam dobio inspiraciju..
 
Odgovor na temu

popeye
Branko Ivanović
Beograd

Član broj: 3846
Poruke: 960
*.pristop.co.yu

Jabber: popeye@elitesecurity.org
ICQ: 18038966
Sajt: popeye.linuxo.org


Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 19:57 - pre 238 meseci
PHP kod mene na Linuxu radi:

Code:
Kerber root # netstat -nat | php -r 'print_r(array_count_values(preg_grep("/^[A-Z_]+[12]*$/", preg_split("/[\s]+/", fread(STDIN, 5000)))));'
Array
(
    [LISTEN] => 4
    [ESTABLISHED] => 31
    [CLOSE_WAIT] => 3
)
Kerber root # netstat -nat|perl -e '/[A-Z_]{2,}[12]?/&&$*{$&}++while<>;@^=keys%{*};print"$*{$*=pop@^} $*\n"while$#{^}>=0'
4 LISTEN
31 ESTABLISHED
3 CLOSE_WAIT
Kerber root #
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+165 Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 20:26 - pre 238 meseci
Pa radi samo delimicno, verovatno te zeza ograniceni fread na 5000 bajtova.

Netstat output na opterecenijim serverima sa dosta aktivnih konekcija zna da bude MNOGO veci.

Dalje, evo iskoristih bzero-vu ideju da napravim i svoju varijantu toga, ovo mi radi i u linuxu i u bsd-u:

netstat -nat|perl -e '/[A-Z_]{2,}[12]?/&&$*{$&}++while<>;map{print"$*{$_} $_\n"}keys%{*}'
 
Odgovor na temu

popeye
Branko Ivanović
Beograd

Član broj: 3846
Poruke: 960
*.pristop.co.yu

Jabber: popeye@elitesecurity.org
ICQ: 18038966
Sajt: popeye.linuxo.org


Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 20:37 - pre 238 meseci
U pravu si, treba povećati dužinu.
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.du.heimsnet.is

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 20:52 - pre 238 meseci
PHP resenje izlazi iz okvira postavke zadatka:


alex@home:~$ netstat -nat | php -r 'print_r(array_count_values(preg_grep("/^[A-Z_]+[12]*$/", preg_split("/[\s]+/", fread(STDIN, 5000)))));'
-bash: php: command not found
alex@home:~$


Poz,
alex.
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

popeye
Branko Ivanović
Beograd

Član broj: 3846
Poruke: 960
*.pristop.co.yu

Jabber: popeye@elitesecurity.org
ICQ: 18038966
Sajt: popeye.linuxo.org


Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 21:17 - pre 238 meseci
Hehe, pa u svim većim distribucijama (Debian, Fedora, Gentoo, Mandrake...) dolazi i php-cli, te ispunjava uslov da se izvršava u nekom od skripting jezika na većini Linux mašina.

Ali ako ti tako kažeš, onda mora da je tačno. :)
 
Odgovor na temu

zsteva

Član broj: 503
Poruke: 31
*.smin.sezampro.yu.

ICQ: 26239191


Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 21:34 - pre 238 meseci
Code:

netstat -nat|perl -e'/ [A-Z]{2}.*/s&&$a{$&}++for<>;print map{$_}reverse%a;'

 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 22:22 - pre 238 meseci
Mislim kada vec krademo tudje ideje, sta ce nam map{$_} :).

Code:
netstat -nat|perl -e'/ [A-Z]{2}.*/s&&$a{$&}++for<>;print reverse%a'


Pazi kada niko nije probao sa foreach :)
CHUPCKO
 
Odgovor na temu

zsteva

Član broj: 503
Poruke: 31
*.smin.sezampro.yu.

ICQ: 26239191


Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 22:52 - pre 238 meseci
Code:

netstat -na|perl -e"/^t.{66}/&&\$a{\$'}++for<>;print reverse%a;"


rekao bih 3 karaktra krace.
 
Odgovor na temu

zsteva

Član broj: 503
Poruke: 31
*.smin.sezampro.yu.

ICQ: 26239191


Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 22:59 - pre 238 meseci
Code:

netstat -na|perl -e"/^t.{66}/&&\$a{\$'}++for<>;print reverse%a"

i josh jedan
 
Odgovor na temu

zsteva

Član broj: 503
Poruke: 31
*.smin.sezampro.yu.

ICQ: 26239191


Profil

icon Re: Pišemo zajedno: ES oneliner #000123.09.2004. u 23:10 - pre 238 meseci
Code:

netstat -na|sed -e's/^t.\{67\}//;t;D'|uniq -c


hmmm... ne moze bez sort pre uniq

Code:

netstat -na|sed -e's/^t.\{67\}//;t;d'|sort|uniq -c

 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Pišemo zajedno: ES oneliner #000124.09.2004. u 08:15 - pre 238 meseci
U sort smo svi zaboravili :), tako nam i treba kada imamo masine sa po dve tri konekcije :)

CHUPCKO
 
Odgovor na temu

B o j a n
eCTRL
EU

Član broj: 1178
Poruke: 2925
*.dsl.siol.net

Jabber: bc@default.co.yu
Sajt: default.co.yu/~bc


+1 Profil

icon Re: Pišemo zajedno: ES oneliner #000124.09.2004. u 08:53 - pre 238 meseci
Neko je pre postovao reply sa awk resenjem ( "vrider" ja mislim ) koje ima par nedostataka...

naime kod vecine awk verzija delimiter je po default-u na space karakteru
tako da kobasa od:
netstat -nat | awk -F\ '{ print $6 }' | uniq -c ( koja ujedno i ne radi )

moze stati u:
netstat -nat|awk '{print $6}'|uniq -c

sto mislim da je ujedno i najmanje zahtevno, najbrze, najrazumljivije ( ovde ide jos nekoliko superlativa )...
ne kapiram zbog cega ljudi toliko forsiraju perl i php za ovako jednostavne stvari.

[sarkazam]
jel' se prihvata resenje u C-u?
i ako da, jel' mora biti registrovan projekat na SF.net da bi se uvazio? ili jos bolje da ima sajt sa skrinshotima i cvsweb interfejsom ;)

[/sarkazam]

izvinjavam se ako sam nekome pokvario provod ovime, izacicu iz peska right away L;)



"It's okay, I'm just admiring to the shape of your skull!" -- Dr. Gonzo
 
Odgovor na temu

zsteva

Član broj: 503
Poruke: 31
*.smin.sezampro.yu.

ICQ: 26239191


Profil

icon Re: Pišemo zajedno: ES oneliner #000124.09.2004. u 10:56 - pre 238 meseci
hmm, mislim da tek ovako daje okey rezultat:
Code:

netstat -nat|awk 'NR>2{print$6}'|sort|uniq -c


ujedno to bi trebalo da bude najkrace reshenje.
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Pišemo zajedno: ES oneliner #000124.09.2004. u 11:44 - pre 238 meseci
Pa nije, imam krace za jedno slovo :). nja nja :)

Code:
netstat -na|awk '/^t/{print$6}'|sort|uniq -c

CHUPCKO
 
Odgovor na temu

zsteva

Član broj: 503
Poruke: 31
*.smin.sezampro.yu.

ICQ: 26239191


Profil

icon Re: Pišemo zajedno: ES oneliner #000124.09.2004. u 13:26 - pre 238 meseci
priznajem, nisam skontao da onda mogu da sklonim t iz -nat :))

kad smo kod awk-a ;)
Code:

netstat -na|awk '/^t/{a[$6]++}END{for(v in a)print v,a[v]}'


ima i awk hash array :)))
 
Odgovor na temu

chupcko
Negde
Beograd

Član broj: 5560
Poruke: 1141

Sajt: www.google.com


+63 Profil

icon Re: Pišemo zajedno: ES oneliner #000124.09.2004. u 14:07 - pre 238 meseci
Pa da, awk ga je prvi i uneo, sve u svemu jel ima neki novi koncept koji do sada nije vidjen ?

CHUPCKO
 
Odgovor na temu

VRider
Marković Damir
(BGD/SD Karaburma)/Pirot

Član broj: 1510
Poruke: 4132
212.200.53.*

Jabber: damirm | gmail | com
ICQ: 134002435


+13 Profil

icon Re: Pišemo zajedno: ES oneliner #000124.09.2004. u 14:42 - pre 238 meseci
Moze li neko objasnjenje zasto je neophodan sort, jer vidim da ga ubacujete?
JaFreelancer.com
 
Odgovor na temu

[es] :: Skript jezici :: Pišemo zajedno: ES oneliner #0001

Strane: 1 2 3

[ Pregleda: 8740 | Odgovora: 43 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.