Linuxtrent: Re: Problemino

  • From: Guido Brugnara <gdo@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Sun, 14 Oct 2001 08:49:22 +0200

Mirco Vivaldi wrote:
> 
> A me servirebbe un programma o script o quello che volete per poter trovere 
> tutti i file doppi che ho sparsi in giro per il pc.
> Non dovrebbe limitarsi a cercare file con i nomi uguali, ma controllare se 
> due file con la stessa dimensione sono uguali.
> Idee? suggerimenti?

# esegui il comando

find ./my_dir -type f -printf "%f|%s|%h\n" >/tmp/elenco_file

# ottieni un file con righe del tipo NOME|DIMENSIONE|DIRECTORY

sort /tmp/elenco_file >/tmp/elenco_file_ordinato

# ottieni un file ordinato con i file di nome uguale uno dietro l'altro

# lanci uno script che eleminina le righe non appaiate; ad esempio

my_script </tmp/elenco_file_ordinato

_____________________________________________________
#!/usr/bin/perl
# Autore Guido Brugnara gdo@xxxxxxxxx (ITALY-BRGGDU62M29L378L) 
# Autorizzazione alla distribuzione concessa
# GPL (http://www.gnu.org/licenses/gpl.txt)
#
$prev_name="|";
$prev_dim="-1";
$prev_dir='';
$print_prev=0;

while(<>){
  chop;
  ($name,$dim,$dir)=split /\|/, $_;
  if($prev_name eq $name && $prev_dim == $dim){
    print "$dir/$name $dim\n";
    $print_prev=1;
  }else{
    if($print_prev){
      $print_prev=0;
      print "$prev_dir/$prev_name $prev_dim\n";
    }
    $prev_name=$name;
    $prev_dim=$dim;
    $prev_dir=$dir;
  }
}
_______________________________________________________


ciao ciao 
Guido Brugnara


> Grazie!
> --
> PROSSIMA ASSEMBLEA: venerdi` 19 ottobre 2001 20:30 a Madrano di Pergine.
> 
> Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
> "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx

-- 
ing. Guido Brugnara tel.+39(461)390804 fax.396028
Leader.IT S.r.l.  (Leader Information Technology)
Strada della Pozzata, 41        www.leader.it/srl
38050 Villazzano TRENTO (ITALY)    info@xxxxxxxxx
-- 
PROSSIMA ASSEMBLEA: venerdi` 19 ottobre 2001 20:30 a Madrano di Pergine.

Per iscriversi  (o disiscriversi), basta spedire un  messaggio con SOGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx


Other related posts: