Isso pode ser feito em uma linha, embora a legibilidade seja dividida. Eu echo o nome do arquivo e modifico usando sed no argumento de destino de mv:
for i in *Bostjan*; do
mv $i $(echo $i | sed s@Bostjan@@)
done
Tenho os arquivos de imagem a seguir em algum diretório que desejo ser renomeado:
8 -rw-rw-r-- 1 6661 sep 24 10:28 dbConnectionOkBostjan.png
8 -rw-rw-r-- 1 6548 sep 24 10:29 dbConnectionErrorBostjan.png
8 -rw-rw-r-- 1 5708 sep 24 10:29 btConnectionErrorBostjan.png
8 -rw-rw-r-- 1 5911 sep 24 10:30 btConnectionOkBostjan.png
8 -rw-rw-r-- 1 6916 sep 24 10:31 userLogOkBostjan.png
8 -rw-rw-r-- 1 6924 sep 24 10:44 userLogErrorBostjan.png
Agora, eu sei como usar o comando mv
para renomear o arquivo e eu até sei como renomear vários arquivos, mas neste caso eu quero renomear cada arquivo com o mesmo nome do arquivo original, mas sem a palavra% código%. Por exemplo, Bostjan
deve renomear para dbConnectionOkBostjan.png
e o mesmo para todos os outros arquivos. Como conseguir essa tarefa usando o terminal? Desejo resolver isso usando o comando comum dbConnectionOk.png
. Se eu usar a solução proposta da Resposta 1 , obtenho os seguintes erros:
user@testcomp:~/Pictures/testAppIcons$ for i in *Bostjan*; do mv $i $(echo $i | sed @Bostjan@@); done sed: -e expression #1, char 1: unknown command: '@' mv: missing destination file operand after ‘btConnectionErrorBostjan.png’ Try 'mv --help' for more information. sed: -e expression #1, char 1: unknown command: '@' mv: missing destination file operand after ‘btConnectionOkBostjan.png’ Try 'mv
--help' for more information. sed: -e expression #1, char 1: unknown command: '@' mv: missing destination file operand after ‘dbConnectionErrorBostjan.png’ Try 'mv --help' for more information. sed: -e expression #1, char 1: unknown command: '@' mv: missing destination file operand after ‘dbConnectionOkBostjan.png’ Try 'mv
--help' for more information. sed: -e expression #1, char 1: unknown command: '@' mv: missing destination file operand after ‘userLogErrorBostjan.png’ Try 'mv --help' for more information. sed:
-e expression #1, char 1: unknown command: '@' mv: missing destination file operand after ‘userLogOkBostjan.png’ Try 'mv --help' for more information. user@testcomp:~/Pictures/testAppIcons$
Estou usando o KUbuntu 15.04 .
Use mmv
. (Você pode ter que instalá-lo primeiro.)
mmv "*Botsjan*" "#1#2"
Tags rename terminal batch-jobs