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: 8752 | Odgovora: 43 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

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:53 - pre 238 meseci
iz man uniq:

uniq - remove duplicate lines from a sorted file

Dakle uniq zahteva sortiran ulaz:

Code:

[chp] 0 /home/chupcko => cat a
1
1
2
2
2
1
3
3
2
2
1
1
1
[chp] 0 /home/chupcko => cat a | uniq 
1
2
1
3
2
1


Dakle da netstat sortia po vrstama bilo bi ok, ali posto ne sortira, moramo mi da sortiramo.

CHUPCKO
 
Odgovor na temu

zsteva

Član broj: 503
Poruke: 31
195.252.80.*

ICQ: 26239191


Profil

icon Re: Pišemo zajedno: ES oneliner #000124.09.2004. u 20:16 - pre 238 meseci
neshto novo, pa npr:
Code:

main(){int a=0,b=0,c=0;for(;read(0,&b,1);
b==10?a=0,c++:0)++a>68&&c>2?write(1,&b,1):0;}


pa onda:
Code:

netstat -nat|./a.out|sort|uniq -c


e sad sort i uniq ubaciti u program sazeto, to je vec izazov.
ali mislim da je bolja strategija sa direktnim brojanjem
kao kod perl varijante. ali treba implementirati sve to :))
ah da, program je samo za LITTLE_ENDIAN mashine,
zbog onog b==10...

 
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 21:37 - pre 238 meseci
Evo da ti skratim malo c :)

Code:

main(a,b,c){for(a=b=c=0;read(0,&b,1);b==10
?a=0,c++:0)++a>68&&c>2&&write(1,&b,1);}
 


E sada smo malo izasli iz jedne linije, ali ajde, sto ne parsiras /proc/net/tcp ?
CHUPCKO
 
Odgovor na temu

zsteva

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

ICQ: 26239191


Profil

icon Re: Pišemo zajedno: ES oneliner #000124.09.2004. u 22:44 - pre 238 meseci
Ne volim ovo kracenje sa ubacivanjem intigera u deklaraciu main()a.
ali ima alternativa, i u ovom slucaju je i kraca, prebaciti a,b,c kao
globalne variable, onda nije potrebna inicijalizacija, jer se one
automatski inicijalizuju na nulu.

necu /proc/net/tcp...

Evo uz malo truda, 4 linije C koda... sigurno moze da se skrati,
ali nemogu da mozgam :)) zadovoljan sam i ovim:
Code:

char s[10][30];int a,b,c,k[10],p,i,j,r;q(){s[i][p]=0;p=j=0;while(j<i)
if(!strcmp(s[i],s[j++]))return k[j]++;k[i++]++;}main(){for(;read(0,&b
,1);b==10?a=0,c++:9)(++a>67&&c>2)?s[i][p++]=b,(b==10?q():8):2;for(;r<
i;)printf("%6d%s",k[r++],s[r]);} /* ----------> ES #0001 by zsteva */

 
Odgovor na temu

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

Strane: < .. 1 2 3

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

Postavi temu Odgovori

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