Repository 32bit  Forum
Repository 64bit  Wiki

BASH - generare nomi files

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza dell'ultima regola porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Re: BASH - generare nomi files

Messaggioda urka58 » lun mar 09, 2009 0:17

Porca miseria Mario, 6-7 secondi sulla mia macchina per generare il file con il programma compilato.
Non mi aspettavo tanta differenza..
Ciao

PS Qualche anima gentile mi spiega come inviare i messaggi personali?
Avatar utente
urka58
Linux 2.6
Linux 2.6
 
Messaggi: 524
Iscritto il: gio dic 08, 2005 0:29

Re: BASH - generare nomi files

Messaggioda targzeta » lun mar 09, 2009 1:04

urka58 ha scritto:Porca miseria Mario, 6-7 secondi sulla mia macchina per generare il file con il programma compilato.
Non mi aspettavo tanta differenza..

Bhé urka58 se ci pensi un attimo lo script (quello postato da me):
  • invoca una subshell
  • invoca seq per creare una listato di 10.000.000 di righe
  • poi analizza quel listato immenso (che è tutto in memoria) per stampare l'output
mentre il programma compilato si limita ad eseguire un ciclo di 10.000.000 di righe, un pò come eseguire:
Codice: Seleziona tutto
seq -w 0 9999999


Ancora più volece sarebbe se il programma di Mario aprisse un file e ci scrivesse direttamente dentro....penso :)

Spina

Offtopic:
urka58 ha scritto:...
PS Qualche anima gentile mi spiega come inviare i messaggi personali?

Ma se l'altro giorno me ne hai mandato uno?
Comuque, vai su "Messaggi Personali", clicchi su "Nuovo PM". Il punto critico è che dopo aver aggiunto il nick di un utente devi premere "aggiungi" altrimenti è come se non l'avessi aggiunto. Puoi anche usare il link "Trova utente" per fare una ricerca.
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 5907
Iscritto il: gio nov 03, 2005 15:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: BASH - generare nomi files

Messaggioda conraid » lun mar 09, 2009 10:59

Mario Vanoni ha scritto:Un vecchio UNIXiano rimasto ai tempi senza X e senza mouse.


Offtopic: non discuto di questo, ma in quel messaggio postato dicevi il contrario, ma va beh, chiudiamo il fuori tema
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11888
Iscritto il: gio lug 14, 2005 0:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: BASH - generare nomi files

Messaggioda Mario Vanoni » lun mar 09, 2009 15:20

spina ha scritto:Ancora più volece sarebbe se il programma di Mario aprisse un file e ci scrivesse direttamente dentro....penso :)

Non molto,
time z3 > /dev/null
0m3.884s
Mario Vanoni
Iper Master
Iper Master
 
Messaggi: 3174
Iscritto il: lun set 03, 2007 21:20
Località: Cuasso al Monte (VA)
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey

Re: BASH - generare nomi files

Messaggioda targzeta » lun mar 09, 2009 16:35

Mario Vanoni ha scritto:...time dice 0m4.349s...


Mario Vanoni ha scritto:
spina ha scritto:Ancora più volece sarebbe se il programma di Mario aprisse un file e ci scrivesse direttamente dentro....penso :)

Non molto,
time z3 > /dev/null
0m3.884s


Bhé, immaginavo che migliorasse non che ci mettesse 0 secondi :). Comunque volevo dire che sarebbe più veloce se modificassi il tuo programma affinchè fosse lui stesso a ridirigere l'output nel file non di mandare l'output su /dev/null, ma ora che ci penso bene forse non fa differenza :)

Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 5907
Iscritto il: gio nov 03, 2005 15:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: BASH - generare nomi files

Messaggioda Mario Vanoni » lun mar 09, 2009 17:35

spina ha scritto:
Mario Vanoni ha scritto:...time dice 0m4.349s...


Mario Vanoni ha scritto:
spina ha scritto:Ancora più volece sarebbe se il programma di Mario aprisse un file e ci scrivesse direttamente dentro....penso :)

Non molto,
time z3 > /dev/null
0m3.884s


Bhé, immaginavo che migliorasse non che ci mettesse 0 secondi :). Comunque volevo dire che sarebbe più veloce se modificassi il tuo programma affinchè fosse lui stesso a ridirigere l'output nel file non di mandare l'output su /dev/null, ma ora che ci penso bene forse non fa differenza :)

Spina


Codice: Seleziona tutto
static char prog[] = "z4";
#define SCCSID "@(#)"  __FILE__ " 09-Mar-2009/va compiled " __DATE__ " " __TIME__
char *sccsid(void) { return (SCCSID); }

#include        <stdio.h>
#include        <stdlib.h>

int
main (int argc, char **argv)
{
        int     i, j;
        FILE    *fp;

        if (argc < 2)
                exit(fprintf(stderr, "Usage: %s filename\n", prog));

        if (! (fp = fopen(argv[1], "w")) )
                exit(fprintf(stderr, "%s: can't open %s.\n", prog, argv[1]));

        for (i = 0; i < 10000; i++)
                for (j = 0; j < 1000; j++)
                        fprintf(fp, "testo-%04i-testo-%06i.txt\n", i, j);

        fclose(fp);
        return(0);
}


time di questa versione 0m4.484s

Ritorna 0 con successo, non zero con errore.

Grazie a tutti di aver insegnato al vecchio UNIXiano
come copiare ed incollare, funziona anche tra tty[1-6].

Le prime tre righe servono a what(1):
what z4
z4
z4.c 09-Mar-2009/va compiled Mar 9 2009 15:26:36

Molto utile per identificare quale versione si usa,
e soprattutto quando e` stato compilata la versione!

Questo

char *sccsid(void) { return (SCCSID); }

_e`_ _imperativo_ per compilatori _non_ gcc
che ottimizzano via l'informazione,
e poi what(1) rimane senza risposta.

Una versione di what(1)
http://heirloom.sourceforge.net/devtools.html

io uso sempre una presa da NetBSD del 1999,
Copyright di Berkeley 8.1(6/6/93) 1980, 1991, 1993.
Mario Vanoni
Iper Master
Iper Master
 
Messaggi: 3174
Iscritto il: lun set 03, 2007 21:20
Località: Cuasso al Monte (VA)
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey

Re: BASH - generare nomi files

Messaggioda urka58 » lun mar 09, 2009 22:07

spina ha scritto:
urka58 ha scritto:Porca miseria Mario, 6-7 secondi sulla mia macchina per generare il file con il programma compilato.
Non mi aspettavo tanta differenza..

Bhé urka58 se ci pensi un attimo lo script (quello postato da me):
  • invoca una subshell
  • invoca seq per creare una listato di 10.000.000 di righe
  • poi analizza quel listato immenso (che è tutto in memoria) per stampare l'output
mentre il programma compilato si limita ad eseguire un ciclo di 10.000.000 di righe, un pò come eseguire:
Codice: Seleziona tutto
seq -w 0 9999999


Ancora più volece sarebbe se il programma di Mario aprisse un file e ci scrivesse direttamente dentro....penso :)

Spina

Offtopic:
urka58 ha scritto:...
PS Qualche anima gentile mi spiega come inviare i messaggi personali?

Ma se l'altro giorno me ne hai mandato uno?
Comuque, vai su "Messaggi Personali", clicchi su "Nuovo PM". Il punto critico è che dopo aver aggiunto il nick di un utente devi premere "aggiungi" altrimenti è come se non l'avessi aggiunto. Puoi anche usare il link "Trova utente" per fare una ricerca.


Certo, solo non mi aspettavo un'efficienza così, da 7 minuti a 7 secondi.

Offtopic: devo confessare che sono parecchio interdetto con i sitemi di messaggistica, tutti... email, Skype, msn...
Credo di aver capito adesso, credo..
Ciao
Avatar utente
urka58
Linux 2.6
Linux 2.6
 
Messaggi: 524
Iscritto il: gio dic 08, 2005 0:29

Precedente

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite