[FoLUG] perl e rinominare files

simona bazzocchi simona_bazzocchi@yahoo.it
Mer 18 Lug 2007 17:43:52 CEST


L'ho risistemato come mi hai detto... ora me li
rinomina in modo corretto ma non riesco a scrivere
sopra ad ogni file per togliere la prima riga, mi da
questo errore:
Filehandle FH opened only for input at
/home/kei/rename.pl line 22, <FH> line xxx..

ecco il codice sistemato, grazie 1000
*****************************************************
#!/usr/bin/perl -w
use strict;

 my $dir="/home/kei/mfold_scripts/mfold_script2/fold";
 opendir(JAZZ,$dir) || die "I cannot open the
directory $dir";
 my @nomi_file= grep ! /^\.\.?\z/, readdir JAZZ;
 closedir(JAZZ);





foreach $_(@nomi_file){
    open FH, "$_" || die "I cannot open the file $_";
    my @contenuto_file = (<FH>);
    #print "@contenuto_file";
    my $nuovo_nome_file = shift @contenuto_file; 
    $nuovo_nome_file=~ s/\>|\n//g;
    #print "$_\n";
    #print "$nuovo_nome_file\n";
    #print "@contenuto_file";
    print FH @contenuto_file;
    rename("$_","$nuovo_nome_file");
                           }
*****************************************************
--- ivan <i.f-ml01@darthxiong.net> ha scritto:

> On 2007-07-18 02:34, simona bazzocchi wrote:
> > Salve il mio scopo sarebbe quello di aprire tutti
> i
> > file in una cartella, leggere la prima riga,
> > cancellarla e farla diventare il nome del file.
> 
> # questo e' buono se i file sono relativamente
> piccoli ( qualche M al
> # max )
> @contenuto_file = (<FH>);
> $nuovo_nome_file = shift @contenuto_file; 
> # contenuto file perde la prima linea
> 
> > Tutte le prime rige del file iniziano con >hsa
> 
> non riuscirai a chiamare un file ">qualcosa". dovrai
> togliere '>' da
> $nuovo_nome_file
> 
> > Niente paura mi fermo molto prima... non riesco ad
> > aprire i file in lettura e scrittura infatti ecco
> > l'errore e il codice, grazie:
> 
> > Non riesco ad aprire . at /home/simo/rename.pl
> line
> > 11.
> 
> stai tentando di aprire la directory ( '.' )
> 
> > #/usr/bin/perl
> > 
> >
> $dir="/home/simo/mfold_scripts/mfold_script2/fold";
> > opendir(JAZZ,$dir) || die "I cannot open the
> directory
> > $dir";
> > @nomi_file=readdir(JAZZ);
> 
> @nomi = grep ! /^\.\.?\z/, readdir JAZZ;
> questo ti impedisce di leggere le dir '.' e '..'
> 
> > closedir(JAZZ);
> 
> -- 
>   (@_ Ivan Fabris, S. Sofia (FC,it) PowerPC e Debian
> GNU/linux SID _*)
>   //\         www.folug.org    pgp key @
> www.keyserver.net         /\\
>   V_/_                  lunga vita e prosperita'    
>              _\_V
> 
> _______________________________________________
> FoLUG mailing list
> FoLUG@lists.linux.it
> http://lists.linux.it/listinfo/folug per cancellarsi
> dalla lista
> 



      ___________________________________ 
L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail: http://it.docs.yahoo.com/nowyoucan.html


Maggiori informazioni sulla lista FoLUG