Mirco Vivaldi writes: > > lo sapevo... il mio problema e' che sono abbastanza ignorante (ho > fatto questo script manuale alla mano) Euhhh... e chi non lo e` stato? Mica si nasce "imparati" :-) > l'unico casino che ho a volte e': > facendo > > mdsum=$(md5sum "$filecondirectory") > > alcune volte mi da problemi (md5sum: ./directory/file non trovato) > ma non sempre perche'?? Sicuro che il file esista? Non e` che stai considerando anche dei link simbolici "orfani"? > altro problema e' che lo script cosi come ho fatto (per adesso) si > divide in 2 script che lasciano in giro una marea di file > temporanei (ma non so come fare altrimenti!) Se devi fare un file temporaneo, usa mktemp. I.e. TEMP_FILE="$(mktemp /tmp/$0.XXXXXX)" echo "Qualcosa" >> $TEMP_FILE ... rm -f "$TEMP_FILE" > adesso daro' un > occhiata ad awk e vedo se mi puo essere utile... Sicuramente vale la pena di darci un'occhiata: per macinare testo non e` affatto male, se uno non ha il Perl sottomano. L'idea di fondo di awk e` l'avere una serie di regole da eseguire se si verifica una certa condizione. Tipicamente si tratta di un qualcosa del tipo /espressione regolare/ { comandi } /espressione regolare/ { comandi } /espressione regolare/ { comandi } ... Per ogni riga letta dal file di input vengono valutate le condizioni a sinistra (se ci sono), e per quelle che corrispondono vengono eseguiti i comandi a destra. Tipicamente le condizioni sono espressioni regolari racchiuse tra barre oblique, ma possono essere anche espressioni del tipo ``if(a==12)'' o cose del genere. Esistono condizioni particolari (BEGIN e END) che vengono valutate una sola volta all'inizio e alla fine. Una condizione vuota e` vera per tutte le righe. Per cui, ad esempio BEGIN { i=0 } { i=i+1 } END { print i } conta le righe in un file, e scrive il totale. Nota che in realta` il BEGIN non e` strettamente necessario, visto che non occorre dichiarare variabili, e che esse sono automaticamente inizializzate tutte a 0 o stringa vuota. man awk per maggiori dettagli. -- Per iscriversi (o disiscriversi), basta spedire un messaggio con SOGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx