awk - zjisteni cetnosti vzorku v souboru

Jirka Kosina jikos na jikos.cz
Čtvrtek Září 19 18:36:40 CEST 2002


On Thu, 19 Sep 2002, Mošnička Roman wrote:

> mam soubor,kde co radek to casovy udaj. Nektere casy jsou tam vicekrat.
> Ja bych potreboval ten soubor projit a do kazde radky k danemu casu
> poznamenat,kolikrat se v souboru vyskytuje. Kdyz to budu aplikovat na
> jeden cas(jeden vzorek), tak mi to ukaze napr. takto: gawk '/06:07/ {
> ++x ;} END { print $1,"Pocet " x }' log.txt - najdu,kolikrat je v
> souboru log.txt radek s casem 06:07

AFAIK awk umi indexovat pole cimkoliv, nejen cisly.

Tedy neco jako
awk '/..:..' { x[$1]++;}
END { for (i in x) printf("%s - %d\n", i, x[i]); }

Netestovano, za nic nerucim, a kdyby neco, vsechno zapru ;)

A nebo si to muzete sortem nejdriv setridit, a pak na jeden pruchod ve 
while cyklu v bashi...otazka je co je ve Vasi situaci pomalejsi - na mala 
data je asi awk zbytecne velky kanon, na velka data ten sort bude trvat 
zbytecne dlouho.

-- 
JiKos.




Další informace o konferenci Linux