linux - renombrar - eliminar una parte del nombre de archivo de un grupo de archivos
copiar archivos en linux (6)
Antes que nada use ''sed-e'' en lugar de ''/ e''
Y yo sugeriría que lo hagas de esta manera en bash
for filename in *.fasta; do
[ -f "$filename" ] || continue
mv "$filename" "${filename//test.extra/}"
done
Deseo eliminar test.extra de todos mis nombres de archivo en el directorio actual
for filename in *.fasta;do
echo $filename | sed /e ''s/test.extra//g''
done
pero se queja de que no se ha creado el archivo. echo es para asegurarse de que aparezca correctamente.
Intenta 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
Por un lado, tiene un /e
lugar de -e
.
Pruebe el comando de rename
:
for filename in ./*; do mv "./$filename" "./$(echo $filename | sed -e ''s/test.extra//g'')"; done
Sé que esta banda de rodamiento es antigua, pero el siguiente enunciado, inspirado en la respuesta validada, me ayudó mucho;)
rename ''s/test.extra//g'' *.fasta
$ mmv ''*test.extra*.fasta'' ''#1#2.fasta''
Esto es seguro en el sentido de que mmv
no hará nada si sobrescribe los archivos existentes (hay opciones de línea de comandos para desactivarlo).