Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 43 odgovora
  • 11.789 pregleda

Najnovija ↓

Re: Pišemo zajedno: ES oneliner #0001 24.09.2004. u 15:53 · pre 269 meseci #41
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.
Potpis
CHUPCKO
Re: Pišemo zajedno: ES oneliner #0001 24.09.2004. u 21:16 · pre 269 meseci #42
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...

Re: Pišemo zajedno: ES oneliner #0001 24.09.2004. u 22:37 · pre 269 meseci #43
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 ?
Potpis
CHUPCKO
Re: Pišemo zajedno: ES oneliner #0001 24.09.2004. u 23:44 · pre 269 meseci #44
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 */

Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme