Feb 14 2009

Profile Image of pallotron
pallotron

Io ti odio!

Posted at 12:22 pm under niente a senso

Caro collega,

stavolta lo scrivo qui: ieri ti ho odiato, per l’ennesima volta!

Quando il nostro collega DBA indiano e’ venuto da me chiedendomi:

«Angelo, come faccio ad inserire una stringa “NAME” su un file “tmp.log” da 1 GB tra la quarta e la quinta riga con VI/VIM?»

Tu hai sentito… ti sei voluto alzare… con quell’aria da saccente… *dovevi* intrometterti… il tuo istinto da “nerdone-primo-della-classe-so-tutto-io” ti ha fatto venire alla mia scrivania mentre io scrivevo il one-liner perl necessario alla magia, consigliandomi di poterlo fare cosi’ e coli’… con sed piuttosto che con awk, e blabla…

Non e’ stato sufficiente che ti dicessi di farti i cazzi tuoi… dovevi gareggiare… dovevi farti sputtanare… e dopo 2 minuti hai avuto anche la sfacciataggine di mandare una email al collega col subject “sed version”, scrivendo questa zozzeria:

$ cat tmp.log | sed 's/^\(\W*\w\+\W\+\w\+\W\+\W*\w\+\)/\1 fff/g'

Ma ti ho punito con la eleganza del Perl:

$ perl -lpne 's/^((\w+\W+){3})/$1NAME /;' tmp.log

Sei old! OLD! Mettitelo in testa. Guarda quella linea, e’ ILLEGGIBILE. Con tutte quelle sequenze di escape!

Peccato che il DBA abbia scelto il tuo sed. In questo mondo non c’e’ giustizia.

11 responses so far

11 Responses to “Io ti odio!”

  1. pallotronon 14 Feb 2009 at 1:00 pm 1

    attenzione. RILASCIO I BENCHMARK:

    $ time cat tmp.big.log | \
    sed ’s/^\(\W*\w\+\W\+\w\+\W\+\W*\w\+\)/\1 NAME/g’ > sedout

    cat tmp.big.log
    0.01s user 0.27s system 0% cpu 36.300 total
    sed ’s/^\(\W*\w\+\W\+\w\+\W\+\W*\w\+\)/\1 NAME/g’ > sedout
    35.58s user 0.68s system 99% cpu 36.318 total

    $ time perl -lpne ’s/^((\w+\W+){3})/$1NAME /;’ tmp.big.log > perlout

    perl -lpne ’s/^((\w+\W+){3})/$1NAME /;’ tmp.big.log > perlout

    4.25s user 0.55s system 99% cpu 4.799 total

    Perl vince, 4.79 secondi contro 36.

  2. dioporcoon 14 Feb 2009 at 1:23 pm 2

    Beh, però c’è da dire che sei anche un po’ strunz chiamando sed dopo una pipe… prova a fare un bel sed ‘quellarobali’ timp.big.log, magari ci mette di meno… dubito comunque sia più veloce di pIrl, epperò magari qualcosa guadagna…

    SUSU un po’ di ONESTÀ PORCODIO!

  3. asdon 14 Feb 2009 at 2:22 pm 3

    siete veramente tristi, voi e il perl.

  4. ubion 14 Feb 2009 at 2:51 pm 4

    io non mi preoccupare.
    la giustizia arriva a tempo debito.
    tutti noi ci siamo passati ma la rivincita arriva inaspettata.
    the geek shall inherit the earth.

  5. pallotronon 14 Feb 2009 at 2:55 pm 5

    @dioporco: porcoddio non sai leggere, il sed l’ha fatto lui. non sai manco leggere che ho fatto time per testare il tempo impiegato :D VAI AL LOURDE.

  6. d1s4st3ron 14 Feb 2009 at 4:26 pm 6

    … e sono pronto a scommettere che il tuo collega nerdone saputello e scassaminchia ha la stessa faccia da cazzo del nerd nella foto! :-D

  7. Markon 14 Feb 2009 at 6:03 pm 7

    Non è che me ne freghi più di tanto, ma se non ho capito male dioporco intendeva dire di provare così:
    $ time sed ’s/^\(\W*\w\+\W\+\w\+\W\+\W*\w\+\)/\1 NAME/g’ tmp.big.log > sedout

  8. dioporcoon 14 Feb 2009 at 9:34 pm 8

    Pallotron e ci ha ragione Mark, quello intendevo… :D
    Ho capito che l’ha fatto lui quel sed terrificante, epperò tu hai usato la PIPE PER IL BENCHMARK! HAI FATTO LE PIPPE AL SED! PERVERTITO!
    :D

  9. pallotronon 15 Feb 2009 at 11:09 am 9

    @dioporco: haahha. cmq se ne capissi un po’ di unix capiresti che il cat non influisce “quasi” per niente sul totale del tempo perso. (0.27s su 36s).

  10. sandon 17 Feb 2009 at 2:25 am 10

    sed e awk sono come la paletta e il secchiello di quando sei piccolo, ed e’ DEPRIMENTE sapere che c’e’ gente che si sbatte per scrivere regexp PRIMITIVE e ILLEGIBILI.

  11. diocaneporcoon 21 Feb 2009 at 6:09 pm 11

    madonna che sfigati del cazzo che siete

Comments RSS

Leave a Reply