Linuxtrent: Re: Primo script....

  • From: Matteo Ianeselli <m.ianeselli@xxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Sat, 17 Nov 2001 12:59:21 +0100

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).


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.
-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts: