如何在目录/子目录中搜索PDF文件的内容?我在找一些命令行工具。grep似乎不能搜索PDF文件。
当前回答
还有另一个实用程序叫做ripgrep-all,它是基于ripgrep的。
它不仅可以处理PDF文档,比如Office文档和电影,而且作者声称它比pdfgrep更快。
递归搜索当前目录的命令语法,第二个命令只限制PDF文件:
rga 'pattern' .
rga --type pdf 'pattern' .
其他回答
你的发行版应该提供一个名为pdftotext的实用程序:
find /path -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color "your pattern"' \;
如果要将pdftotext输出到标准输出,而不是输出到文件,则必须使用“-”。 ——with-filename和——label=选项将把文件名放在grep的输出中。 可选的——color标志很好,它告诉grep在终端上使用颜色输出。
(在Ubuntu中,pdftotext是由xpdf-utils或poppler-utils包提供的。)
如果您想使用GNU grep中pdfgrep不支持的特性,这种使用pdftotext和grep的方法比pdfgrep更有优势。注意:pdfgrep - 1.3。x支持-C选项打印上下文行。
我也遇到了同样的问题,因此我写了一个脚本,搜索指定文件夹中的所有pdf文件的字符串,并打印匹配查询字符串的pdf文件。
也许这对你有帮助。
你可以在这里下载
我的实际版本的pdfgrep(1.3.0)允许以下:
pdfgrep -HiR 'pattern' /path
当执行pdfgrep——help时:
H:打印每个匹配项的文件名。 i:忽略大小写区别。 R:递归搜索目录。
它在我的Ubuntu上运行得很好。
如果你想用pdftotext查看文件名,使用以下命令:
find . -name '*.pdf' -exec echo {} \; -exec pdftotext {} - \; | grep "pattern\|pdf"
有一个开源的通用资源grep工具crgrep,它可以在PDF文件中搜索,也可以搜索其他资源,比如嵌套在档案中的内容、数据库表、图像元数据、POM文件依赖关系和web资源——以及这些资源的组合,包括递归搜索。
Files选项卡下的完整描述几乎涵盖了该工具支持的内容。
我开发的crgrep是一个开源工具。
推荐文章
- 如何找到Java堆大小和内存使用(Linux)?
- 遍历带空格的文件列表
- Bash:无限睡眠(无限阻塞)
- 如何使Python脚本在Linux中像服务或守护进程一样运行
- 如何在文件中grep不区分大小写的字符串?
- 如何使用文件的行作为命令的参数?
- time_t最终的类型定义是什么?
- ElasticSearch初学者指南
- 如何使用cut为分隔符指定更多的空格?
- 没有找到Gradlew命令?
- 如何在Vim或Linux中将空格转换为制表符?
- 如何做一个非贪婪匹配在grep?
- 在一台主机上有多个glibc库
- 如何让命令行参数传递给unix/linux系统上正在运行的进程?
- Linux有c++ gdb图形用户界面吗?