Simplesmente morto.
Como renomear
05_h.png
06_h.png
para
05_half.png
06_half.png
Pelo menos, acho que é simples, mas é difícil usar o Google para esse tipo de coisa, a menos que você já saiba.
Obrigado....
Basta usar o bash, sem necessidade de chamar comandos externos.
for file in *_h.png
do
mv "$file" "${file/_h.png/_half.png}"
done
Não adicione #!/bin/sh
Para aqueles que precisam dessa linha:
for file in *.png; do mv "$file" "${file/_h.png/_half.png}"; done
Do not add #!/bin/sh
? Eu tentei trabalhar com / sem esta declaração.#!/bin/bash
. Dito isto, o bash é normalmente o shell padrão em muitos computadores para que você não vai encontrar muitas diferenças: D Você pode encontrar mais informações aquiTente o
rename
comando:Atualizar:
exemplo de uso:
criar algum conteúdo
solução de teste:
fonte
ls
? o querename ...
você está tentando?rename
não é uma ferramenta padrão do Unix.brew install rename
's//'
- referenciei man e houve uma simples sinopserename [options] expression replacement file...
rename from util-linux 2.23.2
.
corresponde a qualquer caractere, não apenas um ponto - para dot literal, use\.
em vezfonte
mv $f $fnew
comecho $fnew
que a segunda linha para garantir que o sane aparência de saída.Você está procurando uma solução pura para o bash? Existem muitas abordagens, mas aqui está uma.
Isso pressupõe que os únicos arquivos no diretório atual que terminam em
_h.png
são os que você deseja renomear.Muito mais especificamente
Presumindo que esses dois exemplos sejam seus únicos. arquivos.
Para o caso geral, a renomeação de arquivos já foi abordada anteriormente .
fonte
Use o
rename
utilitário escrito em perl. Pode ser que ele não esteja disponível por padrão ...fonte
fonte
Eu tive uma pergunta semelhante: no manual, ele descreve renomear como
para que você possa usá-lo dessa maneira
No código: '_h' é a expressão que você está procurando. '_half' é o padrão que você deseja substituir. '* .png' é o intervalo de arquivos que você está procurando pelos possíveis arquivos de destino.
Espero que isso possa ajudar c:
fonte
Outra abordagem pode ser manualmente usando a opção de renomeação em lote
Clique com o botão direito do mouse no arquivo -> Arquivo de comandos personalizados -> Renomear em lote e você pode substituir h. com metade.
Isso funcionará para a GUI baseada em Linux usando o WinSCP, etc.
fonte
Use o
rename
utilitário:fonte
Um forro:
for file in *.php ; do mv "$file" "_$file" ; done
fonte
Embora o conjunto de respostas esteja completo, preciso adicionar outro ausente.
fonte