On Sat, 17 Nov 2001 12:59:21 +0100 Matteo Ianeselli <m.ianeselli@xxxxxxxxxxx> wrote: > > Mirco Vivaldi writes: > > > > Questo e' il mio primo scriptino in bash e dovrebbe servire per > > trovare tutti i file di dimensione uguale e sbatterli in un file > > > Si puo` fare anche cosi` (a occhio dovrebbe funzionare, ma e` meglio > controllare :-) > > ---------------------------------------------------------------------- > find . -type f -size +20k -printf '%20s %p\n' | sort -n -k 1 | awk ' > { if($1 == lastSize) { > if(notfirst) {print $0} else {print lastLine;print $0;notfirst=1} > } > else { > notfirst=0 > } > > lastLine=$0; lastSize=$1 > }' > ---------------------------------------------------------------------- > > In prosa: trova, a partire dalla directory corrente, tutti i file piu` > grandi di 20k, scrivendoli su standard output (una riga per file) con > 20 caratteri per la dimensione in byte ed il resto della riga per il > nome. Ordina il tutto numericamente in base al solo primo campo, e > passa il tutto a uno script awk che stampa quali sono le righe che > hanno il primo campo uguale. > > E comunque non funziona se i nomi dei file contengono dei newline > (cosa perfettamente legittima). > Grazie per le dritte!! > > Al posto dello scriptino awk pensavo di usare `uniq -d -w20', ma > purtroppo stampa solo i duplicati, e non le righe di cui ha trovato i > duplicati... > > > > > PS: regola d'oro con gli script: evita i file temporanei, se puoi. lo sapevo... il mio problema e' che sono abbastanza ignorante (ho fatto questo script manuale alla mano) comunque lo sto gia modificando: per essere sicuro che i file con dimensione uguale siano VERAMENTE uguali calcolo l'md5sum e vedo se anche questo e' uguale (md5sum e dimensione uguale lo so che non vuol dire che i file siano per forza uguali.... ma mi sembra altamente probabile) infine sposto tutti i file doppi (ho fatto un find per i soli *.zip) in una dir /doppioni/ e scrivendo in un file di chi sono i doppi.... 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'?? 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!) adesso daro' un occhiata ad awk e vedo se mi puo essere utile... Ciao -- Per iscriversi (o disiscriversi), basta spedire un messaggio con SOGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx