Как скопировать определенный файл несколько раз с регулярным завершением?

У меня есть один файл (PDF), и я хочу иметь много одинаковых копий в одной папке (200 было бы хорошо) с именем file-001, file-002 и т. д.

Как сделать Я делаю это?

1
задан 27 August 2014 в 13:55

3 ответа

Это классический случай, когда интерпретации оболочки очень помогают.

for i in {000..199}; do cp file file-$i; done

И я знаю, что это шутка, но если вы хотите, чтобы случайные _ или - разделили число из имя, которое вы можете использовать:

for i in {000..199}; do 
    cp file file$(cat /dev/urandom | tr -dc '_-' | fold -w 1 | head -n 1 )$i; 
done

(несколько строк для удобства чтения)

: - P

20
ответ дан 24 May 2018 в 04:17
  • 1
    Что, если бы я хотел, чтобы каждое простое число было _, а каждое не простое число -? 1 не является простым, и вы выбираете для 0! : P Шутки! – Tim 27 August 2014 в 23:07

Чтобы создать один дубликат файла, вы, вероятно, знаете, что вы можете использовать cp:

cp file file-001

Теперь, чтобы сделать больше дубликатов для файла, вы можете комбинировать cp с [ f5]. В вашем случае:

echo file-{001..200} | xargs -n 1 cp file

скопирует file в file-001, file-002, ..., file-200. Дополнительную информацию см. В man xargs.

7
ответ дан 24 May 2018 в 04:17

Как всегда, грузовик python задерживается, но:

делает его исполняемым, перетаскивая его через окно терминала, перетаскивая файл для копирования через окно терминала и устанавливая количество копий:

script file number_ofcopies

Число начальных нулей устанавливается автоматически, файлы называются file_001.pdf, file_002.pdf, а имена файлов помещены перед расширением.

Сценарий: [!d4 ]

#!/usr/bin/env python3

import sys
import shutil

orig = sys.argv[1]; n = sys.argv[2]; size = len(str(n)); out = (orig[:orig.rfind(".")], orig[orig.rfind("."):])
for item in [out[0]+"_"+(size-len(str(item)))*"0"+str(item)+out[1] for item in range(1, int(n)+1)]:
    shutil.copyfile(orig, item)
4
ответ дан 24 May 2018 в 04:17
  • 1
    Да, я пробовал с python раньше, но мне не нравилось неэлегантность ... Я обычно нахожусь на python :) – Tim 26 August 2014 в 19:00
  • 2
    @Tim Это должен быть шрифт кода на этом сайте, который мешает симпатичности кода python :) – Jacob Vlijm 26 August 2014 в 19:22
  • 3
    Существует несколько способов сделать это. – Braiam 27 August 2014 в 16:24

Другие вопросы по тегам:

Похожие вопросы: