make: конвертировать файлы .pdf в папке в файлы .txt без использования циклов - PullRequest
0 голосов
/ 27 июня 2018

Я хочу преобразовать все файлы .pdf в папке в файлы .txt с помощью make без использования циклов и с помощью pdftotext . Новые файлы .txt должны сохранять исходное имя файла. Кроме того, новый файл получает новое расширение файла.

Пример: test1.pdf -> test2.newextension

Все написано в файле Makefile. Я запускаю преобразование, набрав в консоли «make convert».

Моя первая (жалкая) попытка была:

converted:
      @ls *.pdf | -n1 pdftotext

Однако, есть еще 3 вещи, которые по-прежнему отсутствуют с ним:

  1. Это не повторяет процесс
  2. Новое расширение файла не добавляется к вновь создаваемым файлам.
  3. Сохраняется или присваивается исходное имя функции pdftotext?

Раньше я программировал на bash, и Makefile для меня совершенно новый. Буду благодарен за ответы!

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете обратиться к этому простому примеру:

SOURCES ?= $(wildcard *.pdf)

%.txt: %.pdf
        pdftotext $< $@

all: $(SOURCES:%.pdf=%.txt)

clean:
        rm -f *.txt

Если SOURCE не определено, он просто попытается получить все *.pdf файлы из локального каталога.

Затем мы определяем шаблонное правило , обучающее тому, как сделать *.txt из *.pdf.

Мы также определяем цель all, которая пыталась создать текстовый файл для каждого .pdf файла в переменной SOURCES.

А также правило clean, тихо удаляющее все .txt файлы в текущем каталоге (поэтому будьте осторожны, потенциально опасны).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...