Sziasztok!
123133.xml.pdf formájú fájlokat szeretnék Perl scriptben átnevezni 123133.pdf-re.
Miért nem fut ez nekem:
rename 's/\.xml$//' *.pdf;
Ezt írja hibának:
syntax error at ./nyomtatas line 14, near "*."
Próbáltam már elfedni a .-ot, úgy sem jó.
- 1086 megtekintés
Hozzászólások
Hmm... nálam nincs syntax error, de lóf* se csinál. :D
--
Coding for fun. ;)
- A hozzászóláshoz be kell jelentkezni
Az általad írt kódban honnan kapja a filenevet amire a mintát illeszti? Talán ez a forma bash-ben kell, hogy működjön.
Perlben én így oldanám meg (nem biztos, hogy a legelegánsabb):
my @filenames = <*.xml.pdf>;
foreach my $filename (@filenames) {
$filename =~ /(.*)\.xml\.pdf$/;
rename( $filename, "$1.pdf");
}
- A hozzászóláshoz be kell jelentkezni
Azt a!
Egy foreach-ban vagyok, csak egy .xml.pdf fájlom van, ha ezt átnevezem, nem is lesz több.
De így megy!
Köszönöm, megpróbálom meg is érteni, mit csinálok!
- A hozzászóláshoz be kell jelentkezni
Ha esetleg nem lenne érthető akkor megpróbálom elmagyarázni.
#a @filenames tömben vannak a filenevek és ezt eggyessével átadja a $filenanme változóba.
foreach my $filename (@filenames) {
#a zárójelben "(.*)" lévő részt $1 változóba rakja.
$filename =~ /(.*)\.xml\.pdf$/;
#átnevez ($mit, $mire)
rename( $filename, "$1.pdf");
}
- A hozzászóláshoz be kell jelentkezni