簡體   English   中英

make:使用grep在文件夾內的所有文件中查找特定的字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM