Jes*_*Joy 208 linux pdf debian grep full-text-search
我怎样才能在目录/子目录中搜索PDF文件的内容?我正在寻找一些命令行工具.似乎grep无法搜索PDF文件.
小智 199
有pdfgrep,它正如它的名字所暗示的那样.
pdfgrep -R 'a pattern to search recursively from path' /some/path
Run Code Online (Sandbox Code Playgroud)
我用它进行简单搜索,效果很好.
(Debian,Ubuntu和Fedora都有软件包.)
从版本1.3.0开始,pdfgrep支持递归搜索.自Ubuntu 12.10(Quantal)以来,这个版本在Ubuntu中可用.
sjr*_*sjr 197
您的发行版应该提供一个名为pdftotext:
find /path -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color "your pattern"' \;
Run Code Online (Sandbox Code Playgroud)
" - "是将pdftotext输出到stdout而不是文件的必要条件.在--with-filename和--label=选项将在grep的输出把文件名.可选--color标志很好,告诉grep使用终端上的颜色输出.
(在Ubuntu中,pdftotext由软件包提供xpdf-utils或poppler-utils.)
这种方法,使用pdftotext和grep,拥有一个优势pdfgrep,如果你想使用GNU的特点grep是pdfgrep不支持.注意:pdfgrep-1.3.x支持-C打印上下文行的选项.
Glu*_*ate 28
Recoll是一个出色的全文GUI搜索应用程序,适用于Unix/Linux,支持许多不同的格式,包括PDF.它甚至可以将查询的确切页码和搜索项传递给文档查看器,从而允许您直接从其GUI跳转到结果.
Recoll还带有可行的命令行界面和Web浏览器界面.
ark*_*khi 12
我的pdfgrep(1.3.0)的实际版本允许以下内容:
pdfgrep -HiR 'pattern' /path
Run Code Online (Sandbox Code Playgroud)
做的时候pdfgrep --help:
它在我的Ubuntu上运行良好.
osc*_*ury 11
还有另一个名为ripgrep-all 的实用程序,它基于ripgrep。
它不仅可以处理 PDF 文档,例如 Office 文档和电影,而且作者声称它比pdfgrep.
递归搜索当前目录的命令语法,第二个仅限于PDF文件:
rga 'pattern' .
rga --type pdf 'pattern' .
Run Code Online (Sandbox Code Playgroud)
小智 7
我做了这个破坏性的小脚本.玩得开心.
function pdfsearch()
{
find . -iname '*.pdf' | while read filename
do
#echo -e "\033[34;1m// === PDF Document:\033[33;1m $filename\033[0m"
pdftotext -q -enc ASCII7 "$filename" "$filename."; grep -s -H --color=always -i $1 "$filename."
# remove it! rm -f "$filename."
done
}
Run Code Online (Sandbox Code Playgroud)