Bonjour à tous,
Je cherche à exécuter des commandes unix directement à partir d'un script perl. j'ai des fichiers dont l'extension est .fa.ct et je voudrais les modifier en .ct ; j'arrive très bien à le faire grace à la commande unix :
ls *.fa.ct | sed 's/\(.*\)\.fa\.ct/mv \1\.fa\.ct \1\.ct/g' | sh
mais quand je l'inclus dans mon script perl comme ceci :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #!/usr/bin/perl
use strict;
use warnings;
my $rep = "/home/stephanie/Téléchargements/unafold-3.8/Liste25_négative";
chdir $rep;
my @ss_file = glob('*.fa.ct');
foreach my $v (@ss_file) {
`s/\(.*\)\.fa\.ct/mv \1\.fa\.ct \1\.ct/g` ;
print $v."\n";
} |
D'un part, j'obtiens l'erreur :
sh: Syntax error: word unexpected (expecting ")")
et ensuite cela ne modifie pas le nom de mes fichiers dans mon dossier. Peut être que ce type de commande n'est pas réalisable via perl ?
Merci d'avance pour vos réponses.
Partager