search - make:使用 grep 在文件夹内的所有文件中查找特定字符串
问题描述
我想.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
所有文件中查找“Foo” 。.converted
如果有匹配,它会将其打印到标准输入:
file1.converted: Foo is here
file231.converted: here is Foo for you!
但是,我的 Makefile 不这样做。它总是打印出与“匹配”完全相同的两行,即使我正在寻找的字符串集甚至不在这些行中。
我究竟做错了什么?
解决方案
你的规则不正确。您需要使用模式词干$*
作为搜索模式grep
...
lookfor-%: $(OBJECT)
grep -H '$*' $<
推荐阅读
- javascript - 重启服务器后获取失败
- ios - 将视频保存到相机胶卷而不复制
- java - 没有明显原因的休眠映射错误
- sqlite - Microsoft.WindowsAzure.MobileServices.MobileServiceClient.PullAsync 的“安全句柄已关闭”错误
- apache-spark - Apache Spark:如何“缓存”数据集,使其不会重新计算以进行下一次计算
- linux-kernel - arch/arm64/Makefile:27: ld 不支持 --fix-cortex-a53-843419;内核可能容易出现错误
- python-3.x - ValueError:RGBA 参数无效。为什么会这样?我该如何解决?
- php - 如何在不影响表格行样式的情况下将表格行显示为表单输入
- python - 将孩子定位在窗格窗口内
- xml - 在 XSD 的扩展中添加对元素的限制