Use o Terminal para duplicar o arquivo várias vezes e renomeie os arquivos com base no conteúdo do arquivo .txt

0

Eu tenho um único arquivo chamado template.indd dentro de uma pasta. Eu quero fazer várias cópias do arquivo (centenas) dentro da mesma pasta, mas renomeie cada cópia com nomes contidos em um arquivo de texto. Os nomes no arquivo de texto são aleatórios, não sequenciais e separados por espaços.

Estou usando o Terminal no Mac OSX, versão 10.6.8. Eu sou um iniciante completo.

Existe uma maneira de fazer isso?

    
por Elias L. 13.06.2018 / 14:43

2 respostas

1

xargs solution

Bash do Gnu:

xargs -a file.txt -n 1 cp template.indd

No Mac (thx @ Stéphane Chazelas)

xargs -n 1 < file.txt cp template.indd

Explicação

  • -a ( --arg-file ): Lê itens do arquivo (somente GNU Bash)
  • < alternativa não-GNU para -a
  • -n 1 ( --max-args ): adiciona apenas um item para cada execução
  • cp template.indd : o comando xargs é executado com o item adicionado
por 13.06.2018 / 15:15
0

Tente isso, em que file.txt é o arquivo que contém os nomes dos arquivos:

for file in $(cat file.txt);do cp template.indd "${file}";done
    
por 13.06.2018 / 15:03

Tags