arquivos múltiplos renomear - padrões de nomes de arquivos [duplicados]

1

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 .

    
por KernelPanic 24.09.2015 / 10:52

2 respostas

2

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
    
por 24.09.2015 / 11:01
0

Use mmv . (Você pode ter que instalá-lo primeiro.) mmv "*Botsjan*" "#1#2"

    
por 24.09.2015 / 11:08