Re: Eseguire un'applicazione/script a step
Francesco Potortì <[email protected]> Sun, 08 Mar 2026 11:45:27 +0100
| Newsgroups | gmane.linux.debian.user.italian |
|---|---|
| Organization | ISTI-CNR, via Moruzzi 1, www.isti.cnr.it |
| Message-ID | <[email protected]> |
>La mia esigenza era (era perch=C3=A9 ho gi=C3=A0 risolto per questo caso) = quella di >elaborare un grosso file di testo contenente righe lunghissime. ... >Mi sono fatto uno script che faceva questo, ma mi sono accorto che dovevo >lasciare acceso il PC qualche giorno (probabilmente 3-4 giorni) ... >Quello che ho fatto io =C3=A8 molto semplice, ho configurato il numero di = righe >da trattare ad ogni step, salvato il risultato di ogni step in un file >diverso e salvato lo step attuale in un file. >Se interrompo l'esecuzione, allora riparte dallo step attuale >sovrascrivendo quanto avevo gi=C3=A0 fatto la volta precedente sul file de= dicato >a quello step. >Alla fine tutti i file elaborati vengono concatenati ottenendo cos=C3=AC il >risultato voluto. Hai usato il metodo classico per affrontare questo problema. >Ho usato sed per prendere solo l'intervallo di righe attuali. Questo non >=C3=A8 certamente ottimale, anzi =C3=A8 lentissimo su file di queste dimen= sioni. >Ottimale sarebbe stato farsi un programma in C/C++ o simile dove salvarsi >la posizione del file e ripartire esattamente da quella, Non credo che tu possa fare velocemente di meglio. Sed =C3=A8 estremamente= efficiente, in generale, se lo usi correttamente. E il metodo che dici butta via al massimo una sezione del file una volta al= giorno. Basta che le sezioni dei file siano ragionevolmente piccole (per = esempio ne puoi elaborare 1000 al giorno) e il tempo sprecato =C3=A8 trascu= rabile. Guarda le GNU coreutils, per esempio Split e Csplit, ma potresti trovare an= che altro che fa al caso tuo. In particolare, se usi Split e Csplit e amme= sso che la tua elaborazione lo consenta, puoi facilmente parallelizzare le = operazioni su diversi pezzi. =2D- fp