make:在不使用循环的情况下,将文件夹中的.pdf文件转换为.txt文件

时间:2018-06-27 19:24:08

标签: pdf text makefile

我想使用 pdftotext 在不使用循环的情况下使用make将文件夹中的所有.pdf文件转换为.txt文件。新的.txt文件应保留原始文件名。此外,新文件将获得新的文件扩展名。

示例: test1.pdf-> test2.newextension

一切都写在Makefile文件中。我通过在控制台中输入“使已转换”开始转换。

我的第一次(悲惨)尝试是:

converted:
      @ls *.pdf | -n1 pdftotext

但是,它仍然缺少3件事:

  1. 它不会重复该过程
  2. 新文件扩展名未添加到新创建的文件中。
  3. 原始名称是保留还是赋予pdftotext函数?

我以前用bash编程,而Makefile对我来说是全新的。我会很感激的答案!

1 个答案:

答案 0 :(得分:1)

您可以参考以下简单示例:

SOURCES ?= $(wildcard *.pdf)

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

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

clean:
        rm -f *.txt

如果未定义SOURCE,它将尝试从本地目录中获取所有*.pdf文件。

然后,我们定义一个pattern rule的教学方法,以介绍如何从*.txt中制作*.pdf

我们还定义了目标all,该目标试图在.pdf变量中创建txt文件for each SOURCES文件。

还有一条clean规则,它会悄悄删除当前目录中的所有.txt文件(因此请小心,可能有危险)。