petdog ha scritto:
On 11/18/05, Davide Prina wrote:ma basta fare $ sed "s/^\([^ ]*\) \(.*\) \([^ ]*\)/\1;\2;\3/" a.txtPerò in questo caso è uno spreco di risorse usare le regexp... Ecco una prova: (su un file di 284544 linee 9,5mb)
certo, potrei dire anch'io lo stesso se faccio un programma in C/C++ e lo stesso potrebbe dire un altro che fa un programma in assembler rispetto alla mia soluzione, poi arriva un costruttore hardware che crea un separatore che fa il tutto a tempo quasi nullo ...
Se scrivere un'espressione regolare di quel genere ti costa 100, scrivere uno script ti costa almeno 400-500, un programma in C/C++ 2.000-3.000, in assembler 10.000-15.000 ed il pezzo hardware 200.000-300.000
Se poi devi fare una piccola variante o dei test con l'espressione regolare è molto più veloce e semplice.
Naturalmente più diventa grande il file di input è più conviene fare uno script o un programma in C/C++ o magari qualcosa in assembler.
Ciao Davide -- Dizionari: http://sourceforge.net/projects/linguistico Conoscere il TC: http://www.no1984.org Strumenti per l'ufficio: http://it.openoffice.org Sistema operativo: http://www.it.debian.org Browser: http://www.mozilla.org/products/firefox Client di posta: http://www.mozilla.org/products/thunderbird Linux User: 302090: http://counter.li.org -- Non autorizzo la memorizzazione del mio indirizzo di posta a chi usa outlook: non voglio essere invaso da spam