Linuxtrent: Re: Primo script....

  • From: Mirco Vivaldi <vivaldi@xxxxxxxxxxxxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Sat, 17 Nov 2001 22:53:06 +0100

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


Other related posts: