[英]make: Use grep to look for specific string in all files within a folder
我想在當前文件夾中具有特定文件擴展名的文件(這里是.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”完全相同的兩行。
我究竟做錯了什么?
您的規則不正確。 您需要使用模式詞干$*
作為grep
的搜索模式...
lookfor-%: $(OBJECT)
grep -H '$*' $<
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.