Je veux supprimer test.extra de tous mes noms de fichiers dans le répertoire actuel
for filename in *.fasta;do
echo $filename | sed \e 's/test.extra//g'
done
mais il se plaint de ne pas fonder file.echo, il faut s’assurer de la liste correctement
Tout d'abord, utilisez 'sed -e' au lieu de '\ e'
Et je vous suggère de le faire de cette façon à Bash
for filename in *.fasta; do
[ -f "$filename" ] || continue
mv "$filename" "${filename//test.extra/}"
done
Essayez rename "extra.test" "" *
$ find
./extra.test-eggs.txt
./extra.testbar
./fooextra.test
./ham-extra.test-blah
$ rename "extra.test" "" *
$ find
./-eggs.txt
./bar
./foo
./ham--blah
Je sais que cette bande de roulement est ancienne, mais l’inscription suivante, inspirée de la réponse validée, m’a beaucoup aidée;)
for filename in ./*; do mv "./$filename" "./$(echo "$filename" | sed -e 's/test.extra//g')"; done
Essayez la commande rename
:
rename 's/test.extra//g' *.fasta
$ mmv '*test.extra*.fasta' '#1#2.fasta'
Ceci est sans danger dans le sens où mmv
ne fera rien du tout s'il écraserait autrement les fichiers existants (il existe des options de ligne de commande pour désactiver cette option).
Dans Kali linux rename la commande est rename.ul
rename.ul 'chaîne-à-supprimer' 'chaîne-à-remplacer-avec' * .jpg
exemple: rename.ul 'chaîne inutile' '' * .jpg Ceci supprimera chaîne inutile de tous les noms de fichiers de l'image jpg.
D'une part, vous avez un \e
au lieu de -e
.