[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