我想在当前文件夹中的具有特定文件扩展名(此处为.textfile
)的文件中查找一组特定的字符串。为此,我想使用 make 。
之前,我将所有.pdf
文件转换为.txt
文件,并将其.txt
扩展名重命名为.textfile
。在转换过程中,文件名本身将保持“不受损害”。到目前为止,我的代码:
#Variables that save the filenames of all .pdf files
SOURCE=$(wildcard *.pdf)
OBJECT=$(SOURCE:.pdf=.textfile)
#The conversion target
textfile: $(OBJECT)
%.textfile: %.pdf
@pdftotext -f $(FROM_PAGE) $< $@
要在这些文件中查找一组字符串,我已将其添加到代码中:
lookfor-%: $(OBJECT)
grep -H % $<
因此,调用make lookfor-Foo
将在该文件夹中所有.converted
文件中查找“ Foo”。如果有匹配项,它将打印到标准输入:
file1.converted: Foo is here
file231.converted: here is Foo for you!
但是,我的Makefile没有执行此操作。即使我要查找的字符串集甚至不在这些行中,它也总是打印出与“ match”完全相同的两行。
我在做什么错了?
答案 0 :(得分:1)
您的规则不正确。您需要使用模式词干$*
作为grep
...的搜索模式...
lookfor-%: $(OBJECT)
grep -H '$*' $<