Posterous theme by Cory Watilo

Melyiket szeressem, (g)awk vagy ruby

Mindkettő majdnem ugyanazt csinálja:

 

       awk '/ [A-Z]+$/ {print substr($0,1,12) substr($0,147,3) }'

       ruby -n -e 'puts $_[0,12]+$_[146,3] if /[A-Z]{3}$/' 

 

Vagyis kiírja az input sor egy részét, de csak ha a sor utolsó három karaktere (az awk esetében – ezért csak majdnem - csak az utolsó space után legalább egy karakter a sor végéig) nagybetűs. És akkor melyiket szeressem?

Az awk ennyit fut:

real    0m6.671s

user    0m3.845s

sys     0m0.547s

 

A ruby meg ennyit:

real    0m8.000s

user    0m6.165s

sys     0m0.634s

 

Persze ugyanarra a szép nagy fájlra.

 

A válasz egyszerű. Az awk szinte mindenhol van. Ez jó. Ruby csak ott, ahová direkt telepítettem. De az awk-ban csak akkor tudom pontosan megadni azt hogy három karaktert akarok pontosan ellenőrizni, ha gawk-t használok --re-interval kapcsolóval. Vagy ha így adom meg: / [A-Z][A-Z][A-Z]$/.

 

Szóval a ruby nekem erre a feladatra jobban tetszett.

Amúgy meg tök mindegy, csak kész legyen.