Ok, usando um loop for
? Como
for file in ../new_question_stub/*; do cp "$file" "003${file#*xxx}"; done
Talvez você queira definir uma função para isso
Estou fazendo o Projeto Euler há muito tempo. Eu tenho uma estrutura de projeto que torna realmente fácil criar uma nova pasta para a próxima pergunta e eu tenho alguns arquivos booletos para começar.
ProjectEuler/001/001.go
ProjectEuler/001/001_test.go
ProjectEuler/002/002.go
ProjectEuler/002/002_test.go
...
ProjectEuler/new_question_stub/xxx.go
ProjectEuler/new_question_stub/xxx_test.go
Quando eu crio a pasta de uma nova pergunta, eu executo estes comandos:
ProjectEuler $ mkdir 003
ProjectEuler $ cd 003
ProjectEuler/003 $ cp ../new_question_stub/xxx.go 003.go
ProjectEuler/003 $ cp ../new_question_stub/xxx_test.go 003_test.go
Eu sinto que deveria haver alguma maneira de dizer "copie todos os arquivos de um diretório específico para o diretório atual, mas substitua o token xxx por 003." Não precisa ser um comando para copiar e renomear de uma só vez. Copiá-los é bastante fácil, mas como eu os renomeia depois de copiados?
Edit: meu caso de uso é um exemplo bastante trivial de apenas dois arquivos, mas estou procurando uma maneira de fazer isso para um número arbitrário de arquivos.
Ok, usando um loop for
? Como
for file in ../new_question_stub/*; do cp "$file" "003${file#*xxx}"; done
Talvez você queira definir uma função para isso
Você pode primeiro copiar todos os arquivos xxx_*
e usar perl rename
para renomeá-los:
rename "s,^xxx,"$(basename $(pwd))"," *
Tags command-line